time="2024-06-06T13:11:57Z" level=warning msg="/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/integration-test/docker-compose.yaml: `version` is obsolete" Container integration-test-authentication-1 Creating Container integration-test-gateway-1 Creating Container integration-test-experiment-1 Creating Container integration-test-device-1 Creating Container integration-test-authorization-1 Creating Container integration-test-federation-1 Creating Container integration-test-authorization-1 Created Container integration-test-gateway-1 Created Container integration-test-federation-1 Created Container integration-test-authentication-1 Created Container integration-test-device-1 Created Container integration-test-experiment-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 | node:internal/process/promises:289 federation-1 | triggerUncaughtException(err, true /* fromPromise */); federation-1 | ^ federation-1 | federation-1 | [Error: SQLITE_CANTOPEN: unable to open database file] { federation-1 | errno: 14, federation-1 | code: 'SQLITE_CANTOPEN' federation-1 | } federation-1 | federation-1 | Node.js v20.14.0 authentication-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} device-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} experiment-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} federation-1 exited with code 1 experiment-1 | {"level":"info","message":"Experiment Service started successfully"} device-1 | {"level":"info","message":"Device Service started successfully"} authorization-1 | {"addrs":["localhost:3011"],"diagnostic-addrs":[],"level":"info","msg":"Initializing server.","subsystem":"opa","time":"2024-06-06T13:14:20Z"} authentication-1 | {"level":"info","message":"Authentication Service started successfully"} authorization-1 | {"client_addr":"127.0.0.1:35674","level":"info","msg":"Received request.","req_id":1,"req_method":"GET","req_path":"/","subsystem":"opa","time":"2024-06-06T13:14:21Z"} authorization-1 | {"client_addr":"127.0.0.1:35674","level":"info","msg":"Sent response.","req_id":1,"req_method":"GET","req_path":"/","resp_bytes":1424,"resp_duration":0.308286,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:21Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"๐Ÿงช experimental features enabled: []","subsystem":"openfga","timestamp":1717679661.3574796} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"using 'memory' storage engine","subsystem":"openfga","timestamp":1717679661.3576293} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"warn","message":"authentication is disabled","subsystem":"openfga","timestamp":1717679661.3576462} 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":1717679661.357665} 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":1717679661.357683} 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":1717679661.357714,"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":1717679661.3581355} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"HTTP server listening on 'localhost:3013'...","subsystem":"openfga","timestamp":1717679661.359152} 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:49498","raw_request":{"name":"crosslab"},"raw_response":{"created_at":"2024-06-06T13:14:21.380106629Z","id":"01HZPTZ8A41SDFWH6966KJAB3W","name":"crosslab","updated_at":"2024-06-06T13:14:21.380106629Z"},"request_id":"11e7f8ba-122f-4218-9558-991d46507ab8","subsystem":"openfga","timestamp":1717679661.3802211} 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:49498","raw_request":{"schema_version":"1.1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_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":"01HZPTZ8BFBMSSXH1H668N9QT1"},"request_id":"39b957ba-0dcb-4180-a88e-3427cb582ae6","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679661.4231265} authorization-1 | {"client_addr":"127.0.0.1:35674","level":"info","msg":"Received request.","req_id":2,"req_method":"PUT","req_path":"/v1/data/jwt_secret","subsystem":"opa","time":"2024-06-06T13:14:21Z"} authorization-1 | {"client_addr":"127.0.0.1:35674","level":"info","msg":"Sent response.","req_id":2,"req_method":"PUT","req_path":"/v1/data/jwt_secret","resp_bytes":0,"resp_duration":0.175336,"resp_status":204,"subsystem":"opa","time":"2024-06-06T13:14:21Z"} authorization-1 | {"level":"info","message":"Authorization Service started successfully"} authorization-1 | {"current_version":"0.54.0","download_opa":"https://openpolicyagent.org/downloads/v0.65.0/opa_linux_amd64","latest_version":"0.65.0","level":"info","msg":"OPA is out of date.","release_notes":"https://github.com/open-policy-agent/opa/releases/tag/v0.65.0","subsystem":"opa","time":"2024-06-06T13:14:21Z"} gateway-1 | {"time_local":"06/Jun/2024:13:14:30 +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.017","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"567b5c5c514302b815ade2eed8452e06"} authentication-1 | {"level":"info","message":"HEAD /auth/status 200 11ms","method":"HEAD","requestID":"567b5c5c514302b815ade2eed8452e06","responseTime":11,"status":200,"url":"/auth/status"} gateway-1 | {"time_local":"06/Jun/2024:13:14:30 +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.031","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"600c5ddfbbff4cbcbc7714039f1a9075"} device-1 | {"level":"info","message":"HEAD /device/status 200 19ms","method":"HEAD","requestID":"b5447160-2406-11ef-9563-e3996e819f8c","responseTime":19,"status":200,"url":"/device/status"} gateway-1 | {"time_local":"06/Jun/2024:13:14:30 +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.010","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"cdba92b28345180083eccdf5badba509"} authorization-1 | {"level":"info","message":"HEAD /authorization/status 200 3ms","meta":{"req":{"headers":{"accept":"*/*","connection":"close","host":"authorization_service","user-agent":"curl/7.81.0","x-request-id":"cdba92b28345180083eccdf5badba509"},"httpVersion":"1.0","method":"HEAD","originalUrl":"/authorization/status","query":{},"url":"/authorization/status"},"res":{"statusCode":200},"responseTime":3}} gateway-1 | {"time_local":"06/Jun/2024:13:14:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /login HTTP/1.1","status": "201","body_bytes_sent":"88","request_time":"0.146","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1c7835f509e8b3b007c29980fb8a45c2"} authentication-1 | {"level":"info","message":"POST /login 201 125ms","method":"POST","requestID":"1c7835f509e8b3b007c29980fb8a45c2","responseTime":125,"status":201,"url":"/login"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3M30.i5pohdjR9mt3Qb5gcusofK_4rO4sDpFBZDkZVrM7z_0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 20ms","method":"GET","requestID":"131ef71efbe437765e3bb0d052d1bfb4","responseTime":20,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":3,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:33Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":3,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":2.16046,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:33Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679673,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3M30.i5pohdjR9mt3Qb5gcusofK_4rO4sDpFBZDkZVrM7z_0"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","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":"131ef71efbe437765e3bb0d052d1bfb4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":29}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffa5d3dd8-a74a-4d52-bc6c-c8fcade09108","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"7d113bb8-816b-4481-8e35-65484d5a9ff1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679673.4934754} 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":"131ef71efbe437765e3bb0d052d1bfb4"},"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":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2e83ac2b-71d4-4673-a32e-a30bb2d9f69c","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679673.5166254} 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":"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":"131ef71efbe437765e3bb0d052d1bfb4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffa5d3dd8-a74a-4d52-bc6c-c8fcade09108","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"b34fa464-c8fb-40cb-a541-4f9d4db79340","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679673.541318} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5203d9ad-389f-440b-8587-1b8da20c0624","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679673.5426886} authorization-1 | {"level":"info","message":"POST /relations/update 200 29ms","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":"131ef71efbe437765e3bb0d052d1bfb4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":29}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffa5d3dd8-a74a-4d52-bc6c-c8fcade09108","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffa5d3dd8-a74a-4d52-bc6c-c8fcade09108","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:33.541268043Z"}]},"request_id":"69534fd8-d04b-4f77-8ddb-be7f56101da4","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679673.5511477} 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":"131ef71efbe437765e3bb0d052d1bfb4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"06/Jun/2024:13:14:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.428","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"131ef71efbe437765e3bb0d052d1bfb4"} device-1 | {"level":"info","message":"POST /devices? 201 382ms","method":"POST","requestID":"131ef71efbe437765e3bb0d052d1bfb4","responseTime":382,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3M30.i5pohdjR9mt3Qb5gcusofK_4rO4sDpFBZDkZVrM7z_0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 8ms","method":"GET","requestID":"16f574c7c2425f711cb5ee31f7b2fcbb","responseTime":8,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":4,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:33Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":4,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.362511,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:33Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679673,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3M30.i5pohdjR9mt3Qb5gcusofK_4rO4sDpFBZDkZVrM7z_0"} 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":"16f574c7c2425f711cb5ee31f7b2fcbb"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac5aa26d-1d3c-415f-aa66-a483d953f746","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"2c617cfb-abca-43af-80ef-28f15d8ee1ef","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679673.8610759} 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":"16f574c7c2425f711cb5ee31f7b2fcbb"},"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":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4d55be26-f845-4ab1-8aef-881ad5748724","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679673.875215} 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":"16f574c7c2425f711cb5ee31f7b2fcbb"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac5aa26d-1d3c-415f-aa66-a483d953f746","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"1b6e59a4-949d-42a7-b3bd-cf5122dfe30f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679673.894092} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c20ff5cc-3070-431b-aba3-482a8f47dd75","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679673.8945818} 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":"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":"16f574c7c2425f711cb5ee31f7b2fcbb"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":24}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac5aa26d-1d3c-415f-aa66-a483d953f746","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac5aa26d-1d3c-415f-aa66-a483d953f746","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:33.894064392Z"}]},"request_id":"a7c44174-38df-4dd4-943a-f82d6c874af0","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679673.9087598} 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":"16f574c7c2425f711cb5ee31f7b2fcbb"},"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":"06/Jun/2024:13:14:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.333","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"16f574c7c2425f711cb5ee31f7b2fcbb"} device-1 | {"level":"info","message":"POST /devices? 201 323ms","method":"POST","requestID":"16f574c7c2425f711cb5ee31f7b2fcbb","responseTime":323,"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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"2ef5de79b9b05947f890f9967d348cdf","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"43c98377a2edc0c8f21f483d3830c2c2","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"06/Jun/2024:13:14:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/ac5aa26d-1d3c-415f-aa66-a483d953f746/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.008","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"2ef5de79b9b05947f890f9967d348cdf"} device-1 | {"level":"info","message":"OPTIONS /devices/ac5aa26d-1d3c-415f-aa66-a483d953f746/websocket 200 3ms","method":"OPTIONS","requestID":"2ef5de79b9b05947f890f9967d348cdf","responseTime":3,"status":200,"url":"/devices/ac5aa26d-1d3c-415f-aa66-a483d953f746/websocket"} gateway-1 | {"time_local":"06/Jun/2024:13:14:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.012","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"43c98377a2edc0c8f21f483d3830c2c2"} device-1 | {"level":"info","message":"OPTIONS /devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108/websocket 200 3ms","method":"OPTIONS","requestID":"43c98377a2edc0c8f21f483d3830c2c2","responseTime":3,"status":200,"url":"/devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3Nn0.5B-ZTcigg6AtZ1yrP60lBf8Qg2hwd7dL-bjGm-yG3Bo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"3809bdc538674c41765419b1d425a589","responseTime":7,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3Nn0.5B-ZTcigg6AtZ1yrP60lBf8Qg2hwd7dL-bjGm-yG3Bo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"80009fcebb0bc16ed390113a2c9dd21d","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":5,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:36Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":5,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.685039,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:36Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac5aa26d-1d3c-415f-aa66-a483d953f746","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/ac5aa26d-1d3c-415f-aa66-a483d953f746","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679676,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3Nn0.5B-ZTcigg6AtZ1yrP60lBf8Qg2hwd7dL-bjGm-yG3Bo"} 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":"3809bdc538674c41765419b1d425a589"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:36476","level":"info","msg":"Received request.","req_id":6,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:36Z"} authorization-1 | {"client_addr":"127.0.0.1:36476","level":"info","msg":"Sent response.","req_id":6,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.372405,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:36Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679676,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3Nn0.5B-ZTcigg6AtZ1yrP60lBf8Qg2hwd7dL-bjGm-yG3Bo"} 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":"80009fcebb0bc16ed390113a2c9dd21d"},"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":"06/Jun/2024:13:14:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/ac5aa26d-1d3c-415f-aa66-a483d953f746/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":"3809bdc538674c41765419b1d425a589"} device-1 | {"level":"info","message":"POST /devices/ac5aa26d-1d3c-415f-aa66-a483d953f746/websocket 200 50ms","method":"POST","requestID":"3809bdc538674c41765419b1d425a589","responseTime":50,"status":200,"url":"/devices/ac5aa26d-1d3c-415f-aa66-a483d953f746/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"06/Jun/2024:13:14:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.063","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"80009fcebb0bc16ed390113a2c9dd21d"} device-1 | {"level":"info","message":"POST /devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108/websocket 200 50ms","method":"POST","requestID":"80009fcebb0bc16ed390113a2c9dd21d","responseTime":50,"status":200,"url":"/devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/ac5aa26d-1d3c-415f-aa66-a483d953f746' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3Nn0.5B-ZTcigg6AtZ1yrP60lBf8Qg2hwd7dL-bjGm-yG3Bo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"68565d3d40d076d445ea8fd7417bb914","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":7,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:36Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":7,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.520574,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679676,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3Nn0.5B-ZTcigg6AtZ1yrP60lBf8Qg2hwd7dL-bjGm-yG3Bo"} 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":"68565d3d40d076d445ea8fd7417bb914"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffa5d3dd8-a74a-4d52-bc6c-c8fcade09108","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffa5d3dd8-a74a-4d52-bc6c-c8fcade09108","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:33.541268043Z"}]},"request_id":"6bb569db-4665-4e95-9553-006e98aa6e52","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679676.6523805} 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":"68565d3d40d076d445ea8fd7417bb914"},"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":"06/Jun/2024:13:14:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"68565d3d40d076d445ea8fd7417bb914"} device-1 | {"level":"info","message":"GET /devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108? 200 32ms","method":"GET","requestID":"68565d3d40d076d445ea8fd7417bb914","responseTime":32,"status":200,"url":"/devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3Nn0.5B-ZTcigg6AtZ1yrP60lBf8Qg2hwd7dL-bjGm-yG3Bo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"be1123427298710922de27b45a539259","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":8,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:36Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":8,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.195654,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac5aa26d-1d3c-415f-aa66-a483d953f746","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/ac5aa26d-1d3c-415f-aa66-a483d953f746","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679676,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3Nn0.5B-ZTcigg6AtZ1yrP60lBf8Qg2hwd7dL-bjGm-yG3Bo"} 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":"be1123427298710922de27b45a539259"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac5aa26d-1d3c-415f-aa66-a483d953f746","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac5aa26d-1d3c-415f-aa66-a483d953f746","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:33.894064392Z"}]},"request_id":"2e497ae9-ab33-4695-b18d-53a2ffef4d9f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679676.689961} 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":"be1123427298710922de27b45a539259"},"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":"06/Jun/2024:13:14:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ac5aa26d-1d3c-415f-aa66-a483d953f746? 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":"be1123427298710922de27b45a539259"} device-1 | {"level":"info","message":"GET /devices/ac5aa26d-1d3c-415f-aa66-a483d953f746? 200 21ms","method":"GET","requestID":"be1123427298710922de27b45a539259","responseTime":21,"status":200,"url":"/devices/ac5aa26d-1d3c-415f-aa66-a483d953f746?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3Nn0.5B-ZTcigg6AtZ1yrP60lBf8Qg2hwd7dL-bjGm-yG3Bo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f95fafc3632c359300fabcb7d882c7f5","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:36466","level":"info","msg":"Received request.","req_id":9,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:36Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":9,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.830267,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:36Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679676,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3Nn0.5B-ZTcigg6AtZ1yrP60lBf8Qg2hwd7dL-bjGm-yG3Bo"} 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":"f95fafc3632c359300fabcb7d882c7f5"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0f0938e7-d60f-4fc6-92a5-015034fd0345"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0f0938e7-d60f-4fc6-92a5-015034fd0345"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0f0938e7-d60f-4fc6-92a5-015034fd0345"},"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:36466","level":"info","msg":"Received request.","req_id":10,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:37Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":10,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.634589,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:37Z"} authorization-1 | {"client_addr":"127.0.0.1:36476","level":"info","msg":"Received request.","req_id":11,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679676,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3Nn0.5B-ZTcigg6AtZ1yrP60lBf8Qg2hwd7dL-bjGm-yG3Bo"} 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":"b96bd3f0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:36476","level":"info","msg":"Sent response.","req_id":11,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.642516,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac5aa26d-1d3c-415f-aa66-a483d953f746","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/ac5aa26d-1d3c-415f-aa66-a483d953f746","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679676,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3Nn0.5B-ZTcigg6AtZ1yrP60lBf8Qg2hwd7dL-bjGm-yG3Bo"} 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":"b96c4920-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffa5d3dd8-a74a-4d52-bc6c-c8fcade09108","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffa5d3dd8-a74a-4d52-bc6c-c8fcade09108","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:33.541268043Z"}]},"request_id":"a0dfea9b-9f16-4d40-a62c-abb45388264f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679677.1190786} 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":"b96bd3f0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac5aa26d-1d3c-415f-aa66-a483d953f746","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac5aa26d-1d3c-415f-aa66-a483d953f746","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:33.894064392Z"}]},"request_id":"92cf2d12-7560-47eb-a745-8241590473b3","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679677.1208107} 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":"b96c4920-2406-11ef-9563-e3996e819f8c"},"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/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108? 200 31ms","method":"GET","requestID":"b96bd3f0-2406-11ef-9563-e3996e819f8c","responseTime":31,"status":200,"url":"/devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/ac5aa26d-1d3c-415f-aa66-a483d953f746? 200 30ms","method":"GET","requestID":"b96c4920-2406-11ef-9563-e3996e819f8c","responseTime":30,"status":200,"url":"/devices/ac5aa26d-1d3c-415f-aa66-a483d953f746?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0f0938e7-d60f-4fc6-92a5-015034fd0345"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0f0938e7-d60f-4fc6-92a5-015034fd0345"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0f0938e7-d60f-4fc6-92a5-015034fd0345"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0f0938e7-d60f-4fc6-92a5-015034fd0345"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0f0938e7-d60f-4fc6-92a5-015034fd0345"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0f0938e7-d60f-4fc6-92a5-015034fd0345"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0f0938e7-d60f-4fc6-92a5-015034fd0345"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0f0938e7-d60f-4fc6-92a5-015034fd0345"},"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/0f0938e7-d60f-4fc6-92a5-015034fd0345"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":12,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:37Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":12,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.164023,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:37Z"} authorization-1 | {"client_addr":"127.0.0.1:36476","level":"info","msg":"Received request.","req_id":13,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679676,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3Nn0.5B-ZTcigg6AtZ1yrP60lBf8Qg2hwd7dL-bjGm-yG3Bo"} 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":"b9a1d810-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"client_addr":"127.0.0.1:36476","level":"info","msg":"Sent response.","req_id":13,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.836225,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac5aa26d-1d3c-415f-aa66-a483d953f746","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/ac5aa26d-1d3c-415f-aa66-a483d953f746","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679676,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3Nn0.5B-ZTcigg6AtZ1yrP60lBf8Qg2hwd7dL-bjGm-yG3Bo"} 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":"b9a27450-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffa5d3dd8-a74a-4d52-bc6c-c8fcade09108","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffa5d3dd8-a74a-4d52-bc6c-c8fcade09108","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:33.541268043Z"}]},"request_id":"49dce4f9-0cf3-4de4-bd16-e5b3a971a7cc","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679677.484579} 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":"b9a1d810-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac5aa26d-1d3c-415f-aa66-a483d953f746","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac5aa26d-1d3c-415f-aa66-a483d953f746","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:33.894064392Z"}]},"request_id":"fbd9ae66-147c-4273-8633-bb5bb151ff28","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679677.4879673} 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":"b9a27450-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0f0938e7-d60f-4fc6-92a5-015034fd0345#owner@http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0f0938e7-d60f-4fc6-92a5-015034fd0345","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"827df8a5-d77e-40e3-87cf-e8991aeea214","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679677.4980717} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2de530c9-4cfb-464e-8bd6-f86916d1fcc5","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679677.4986432} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108? 200 44ms","method":"GET","requestID":"b9a1d810-2406-11ef-9563-e3996e819f8c","responseTime":44,"status":200,"url":"/devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/ac5aa26d-1d3c-415f-aa66-a483d953f746? 200 43ms","method":"GET","requestID":"b9a27450-2406-11ef-9563-e3996e819f8c","responseTime":43,"status":200,"url":"/devices/ac5aa26d-1d3c-415f-aa66-a483d953f746?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 28ms","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":"f95fafc3632c359300fabcb7d882c7f5"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":28}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":14,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:37Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/0f0938e7-d60f-4fc6-92a5-015034fd0345","user":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":14,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.108976,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:37Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b9ab7500-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} gateway-1 | {"time_local":"06/Jun/2024:13:14:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"807","request_time":"0.838","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f95fafc3632c359300fabcb7d882c7f5"} device-1 | {"level":"info","message":"POST /devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108/signaling 200 20ms","method":"POST","requestID":"b9ab7500-2406-11ef-9563-e3996e819f8c","responseTime":20,"status":200,"url":"/devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108/signaling"} experiment-1 | {"level":"info","message":"POST /experiments? 201 808ms","method":"POST","requestID":"f95fafc3632c359300fabcb7d882c7f5","responseTime":808,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3N30.ewep4TzuEpsEQ4DbbgAeGdA_MC_6Yp5rk5D3rtjO6Dg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"769cbe63c9e8fa81e22e4b21f1398180","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":15,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:37Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":15,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.702719,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:37Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac5aa26d-1d3c-415f-aa66-a483d953f746","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ac5aa26d-1d3c-415f-aa66-a483d953f746","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b9af4590-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":16,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:37Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":16,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.692564,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:37Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679677,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3N30.ewep4TzuEpsEQ4DbbgAeGdA_MC_6Yp5rk5D3rtjO6Dg"} device-1 | {"level":"info","message":"POST /devices/ac5aa26d-1d3c-415f-aa66-a483d953f746/signaling 200 11ms","method":"POST","requestID":"b9af4590-2406-11ef-9563-e3996e819f8c","responseTime":11,"status":200,"url":"/devices/ac5aa26d-1d3c-415f-aa66-a483d953f746/signaling"} 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":"769cbe63c9e8fa81e22e4b21f1398180"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0f0938e7-d60f-4fc6-92a5-015034fd0345"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0f0938e7-d60f-4fc6-92a5-015034fd0345"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"8618ea02-822d-4706-9971-cc7196ee21a3"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"a5e2be04-a4e2-400d-972e-850f7f90c12e"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"fb820ff1-e341-4ad7-9ff7-1fd20571c323"}]},"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/ac5aa26d-1d3c-415f-aa66-a483d953f746"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108"}],"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffa5d3dd8-a74a-4d52-bc6c-c8fcade09108","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffa5d3dd8-a74a-4d52-bc6c-c8fcade09108","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:33.541268043Z"}]},"request_id":"5138cde0-6929-4cd9-8627-380b36cbc774","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679677.5622673} 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":"769cbe63c9e8fa81e22e4b21f1398180"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"06/Jun/2024:13:14:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.031","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"769cbe63c9e8fa81e22e4b21f1398180"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":17,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:37Z"} device-1 | {"level":"info","message":"GET /devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108? 200 26ms","method":"GET","requestID":"769cbe63c9e8fa81e22e4b21f1398180","responseTime":26,"status":200,"url":"/devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108?"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":17,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.93121,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:37Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679676,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3Nn0.5B-ZTcigg6AtZ1yrP60lBf8Qg2hwd7dL-bjGm-yG3Bo"} 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":"b9b2c800-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3N30.ewep4TzuEpsEQ4DbbgAeGdA_MC_6Yp5rk5D3rtjO6Dg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"e9db80092858265a37648a90cbf0630c","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":18,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:37Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":18,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.719592,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac5aa26d-1d3c-415f-aa66-a483d953f746","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/ac5aa26d-1d3c-415f-aa66-a483d953f746","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679677,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3N30.ewep4TzuEpsEQ4DbbgAeGdA_MC_6Yp5rk5D3rtjO6Dg"} 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":"e9db80092858265a37648a90cbf0630c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac5aa26d-1d3c-415f-aa66-a483d953f746","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac5aa26d-1d3c-415f-aa66-a483d953f746","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:33.894064392Z"}]},"request_id":"8297beca-6c65-4a75-b01e-3562de5692ff","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679677.5947738} 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":"e9db80092858265a37648a90cbf0630c"},"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":"06/Jun/2024:13:14:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ac5aa26d-1d3c-415f-aa66-a483d953f746? 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":"e9db80092858265a37648a90cbf0630c"} device-1 | {"level":"info","message":"GET /devices/ac5aa26d-1d3c-415f-aa66-a483d953f746? 200 16ms","method":"GET","requestID":"e9db80092858265a37648a90cbf0630c","responseTime":16,"status":200,"url":"/devices/ac5aa26d-1d3c-415f-aa66-a483d953f746?"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"4e9e8e5d-766f-4882-883b-a1b9b356b76b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679677.8073363} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f2c5fe05-2e14-4393-af06-e04f26521810","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679677.8079476} authorization-1 | {"level":"info","message":"POST /relations/update 200 223ms","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":"b9b2c800-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":223}} 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/88ac6290-2aba-4fce-8a1f-499c530061af'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/88ac6290-2aba-4fce-8a1f-499c530061af'"} 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 268ms","method":"POST","requestID":"b9b2c800-2406-11ef-9563-e3996e819f8c","responseTime":268,"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/0f0938e7-d60f-4fc6-92a5-015034fd0345"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/88ac6290-2aba-4fce-8a1f-499c530061af' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"88ac6290-2aba-4fce-8a1f-499c530061af","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"798a34bc18b5a0b1cfdc1cb75efcc397","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/ac5aa26d-1d3c-415f-aa66-a483d953f746"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/88ac6290-2aba-4fce-8a1f-499c530061af"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 16ms","method":"POST","requestID":"798a34bc18b5a0b1cfdc1cb75efcc397","responseTime":16,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:14:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch","requestID":"798a34bc18b5a0b1cfdc1cb75efcc397"} device-1 | {"data":{"peerconnection":"88ac6290-2aba-4fce-8a1f-499c530061af","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"88ac6290-2aba-4fce-8a1f-499c530061af","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/88ac6290-2aba-4fce-8a1f-499c530061af' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"88ac6290-2aba-4fce-8a1f-499c530061af","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"53e0b657afa397453121245e312bdb96","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":"connected","url":"http://localhost/devices/ac5aa26d-1d3c-415f-aa66-a483d953f746"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/88ac6290-2aba-4fce-8a1f-499c530061af"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":19,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:38Z"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","contextual_tuples":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F88ac6290-2aba-4fce-8a1f-499c530061af","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f33c58ee-b220-4062-af18-850f815cc2f9","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679678.462922} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":19,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":5.055754,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/88ac6290-2aba-4fce-8a1f-499c530061af","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/88ac6290-2aba-4fce-8a1f-499c530061af","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":"ba395d20-2406-11ef-9563-e3996e819f8c"},"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/88ac6290-2aba-4fce-8a1f-499c530061af 200 20ms","method":"GET","requestID":"ba395d20-2406-11ef-9563-e3996e819f8c","responseTime":20,"status":200,"url":"/peerconnections/88ac6290-2aba-4fce-8a1f-499c530061af"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3OH0.FrlqBqin4QqXUTY1p99xohmrcuZnPVCNC22iPSgo8QI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"da5509f4bc1a2859cae7ffab237068a5","responseTime":7,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/0f0938e7-d60f-4fc6-92a5-015034fd0345"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":20,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:38Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":20,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.39731,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/0f0938e7-d60f-4fc6-92a5-015034fd0345","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/0f0938e7-d60f-4fc6-92a5-015034fd0345","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679678,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3OH0.FrlqBqin4QqXUTY1p99xohmrcuZnPVCNC22iPSgo8QI"} 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":"da5509f4bc1a2859cae7ffab237068a5"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 318ms","method":"POST","requestID":"53e0b657afa397453121245e312bdb96","responseTime":318,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:14:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.328","http_referrer":"","http_user_agent":"node-fetch","requestID":"53e0b657afa397453121245e312bdb96"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/0f0938e7-d60f-4fc6-92a5-015034fd0345"} gateway-1 | {"time_local":"06/Jun/2024:13:14:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/0f0938e7-d60f-4fc6-92a5-015034fd0345 HTTP/1.1","status": "200","body_bytes_sent":"880","request_time":"0.279","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"da5509f4bc1a2859cae7ffab237068a5"} experiment-1 | {"level":"info","message":"GET /experiments/0f0938e7-d60f-4fc6-92a5-015034fd0345 200 271ms","method":"GET","requestID":"da5509f4bc1a2859cae7ffab237068a5","responseTime":271,"status":200,"url":"/experiments/0f0938e7-d60f-4fc6-92a5-015034fd0345"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3OH0.FrlqBqin4QqXUTY1p99xohmrcuZnPVCNC22iPSgo8QI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"b1d1202889c3353bd6acc170ff5e2315","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/0f0938e7-d60f-4fc6-92a5-015034fd0345"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":21,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:38Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":21,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.08913,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:38Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/0f0938e7-d60f-4fc6-92a5-015034fd0345","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/0f0938e7-d60f-4fc6-92a5-015034fd0345","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679678,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3OH0.FrlqBqin4QqXUTY1p99xohmrcuZnPVCNC22iPSgo8QI"} 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":"b1d1202889c3353bd6acc170ff5e2315"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0f0938e7-d60f-4fc6-92a5-015034fd0345"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":22,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:38Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":22,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.436605,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:38Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/88ac6290-2aba-4fce-8a1f-499c530061af","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:http://localhost/peerconnections/88ac6290-2aba-4fce-8a1f-499c530061af","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679678,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3OH0.FrlqBqin4QqXUTY1p99xohmrcuZnPVCNC22iPSgo8QI"} 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":"ba6f1320-2406-11ef-9563-e3996e819f8c"},"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/88ac6290-2aba-4fce-8a1f-499c530061af' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/88ac6290-2aba-4fce-8a1f-499c530061af' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"88ac6290-2aba-4fce-8a1f-499c530061af","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"4a25b75d69621f29caa2ca9d4d446a9b","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/ac5aa26d-1d3c-415f-aa66-a483d953f746"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/88ac6290-2aba-4fce-8a1f-499c530061af"}}},"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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"8c6ca7a70fd24ae84599ce82196c7ab4","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/ac5aa26d-1d3c-415f-aa66-a483d953f746"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/88ac6290-2aba-4fce-8a1f-499c530061af"}}},"level":"info","message":"received a callback"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F88ac6290-2aba-4fce-8a1f-499c530061af': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F88ac6290-2aba-4fce-8a1f-499c530061af","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"68a4bf8e-b3b0-47e8-822d-dc1f75978dc0","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679678.8608737} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d28c4ad3-989e-4766-94df-396aaf3f8ed6","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679678.8616147} authorization-1 | {"level":"info","message":"POST /relations/update 200 42ms","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":"ba6f1320-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":42}} device-1 | {"data":{"peerconnection":"88ac6290-2aba-4fce-8a1f-499c530061af","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/88ac6290-2aba-4fce-8a1f-499c530061af 204 276ms","method":"DELETE","requestID":"ba6f1320-2406-11ef-9563-e3996e819f8c","responseTime":276,"status":204,"url":"/peerconnections/88ac6290-2aba-4fce-8a1f-499c530061af"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0f0938e7-d60f-4fc6-92a5-015034fd0345"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0f0938e7-d60f-4fc6-92a5-015034fd0345': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0f0938e7-d60f-4fc6-92a5-015034fd0345","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"846168f9-6b11-43c0-9892-14ef1d7a5954","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679679.1237445} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7e007406-3a69-4f8f-9494-6ee777fe136f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679679.1243556} authorization-1 | {"level":"info","message":"POST /relations/update 200 28ms","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":"b1d1202889c3353bd6acc170ff5e2315"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":28}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/0f0938e7-d60f-4fc6-92a5-015034fd0345"} gateway-1 | {"time_local":"06/Jun/2024:13:14:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/0f0938e7-d60f-4fc6-92a5-015034fd0345 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.955","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b1d1202889c3353bd6acc170ff5e2315"} experiment-1 | {"level":"info","message":"DELETE /experiments/0f0938e7-d60f-4fc6-92a5-015034fd0345 204 949ms","method":"DELETE","requestID":"b1d1202889c3353bd6acc170ff5e2315","responseTime":949,"status":204,"url":"/experiments/0f0938e7-d60f-4fc6-92a5-015034fd0345"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 891ms","method":"POST","requestID":"4a25b75d69621f29caa2ca9d4d446a9b","responseTime":891,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3OX0.EA1vgE0mZ_MZk27HxbI2q9sULLaf-PVDdCgZEIzCkPE","level":"info","message":"auth send jwt"} gateway-1 | {"time_local":"06/Jun/2024:13:14: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.896","http_referrer":"","http_user_agent":"node-fetch","requestID":"4a25b75d69621f29caa2ca9d4d446a9b"} gateway-1 | {"time_local":"06/Jun/2024:13:14: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.896","http_referrer":"","http_user_agent":"node-fetch","requestID":"8c6ca7a70fd24ae84599ce82196c7ab4"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 889ms","method":"POST","requestID":"8c6ca7a70fd24ae84599ce82196c7ab4","responseTime":889,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"6e9ca9d01e792151944607f9dea8da31","responseTime":5,"status":200,"url":"/auth"} gateway-1 | {"time_local":"06/Jun/2024:13:14:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1756","request_time":"3.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":"198ac43fa46d371fa5e675aaeba3f25d"} gateway-1 | {"time_local":"06/Jun/2024:13:14:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1487","request_time":"3.138","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"89d0bbeadfee661825a0c72c0945c4eb"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":23,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:39Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":23,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.855345,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679679,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3OX0.EA1vgE0mZ_MZk27HxbI2q9sULLaf-PVDdCgZEIzCkPE"} 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":"6e9ca9d01e792151944607f9dea8da31"},"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/ac5aa26d-1d3c-415f-aa66-a483d953f746' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/fa5d3dd8-a74a-4d52-bc6c-c8fcade09108' 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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1af42d0a-44d3-475e-a07b-97d7ce63da00","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"f1ab1e25-8efd-455d-a467-f1e9cdd68873","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679679.767378} 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":"6e9ca9d01e792151944607f9dea8da31"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"01431288-73c6-4f40-80c5-03921094ec96","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679679.7734826} 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":"6e9ca9d01e792151944607f9dea8da31"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1af42d0a-44d3-475e-a07b-97d7ce63da00","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"ccdc80e6-8dd3-4bdc-988a-558c37fb8eb7","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679679.785137} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6782dc30-c2ff-4e32-bfb6-faad6710b249","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679679.7854083} 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":"6e9ca9d01e792151944607f9dea8da31"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1af42d0a-44d3-475e-a07b-97d7ce63da00","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1af42d0a-44d3-475e-a07b-97d7ce63da00","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:39.785120300Z"}]},"request_id":"077c05d9-fd8d-4f7f-95ea-68296ed1c6bb","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679679.7907364} 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":"6e9ca9d01e792151944607f9dea8da31"},"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":"06/Jun/2024:13:14:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.062","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6e9ca9d01e792151944607f9dea8da31"} device-1 | {"level":"info","message":"POST /devices? 201 51ms","method":"POST","requestID":"6e9ca9d01e792151944607f9dea8da31","responseTime":51,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3OX0.EA1vgE0mZ_MZk27HxbI2q9sULLaf-PVDdCgZEIzCkPE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"7539371f76700749f9e322bbdcb788fa","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":24,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:39Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":24,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.645738,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679679,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY3OX0.EA1vgE0mZ_MZk27HxbI2q9sULLaf-PVDdCgZEIzCkPE"} 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":"7539371f76700749f9e322bbdcb788fa"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffafb41f4-47b2-4417-b206-d4a60106dd0e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"15c0bb3d-7c27-4f20-bdc0-579e84b825cd","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679679.8214886} 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":"7539371f76700749f9e322bbdcb788fa"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e209772c-3cbd-4feb-a6ec-301b2cde6f44","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679679.8287685} 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":"7539371f76700749f9e322bbdcb788fa"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffafb41f4-47b2-4417-b206-d4a60106dd0e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"81612ce7-a953-41b9-bd69-7bca880b1c8b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679680.1002462} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2c052f37-9724-4f43-8e9b-3ad04425afad","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679680.100563} authorization-1 | {"level":"info","message":"POST /relations/update 200 276ms","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":"7539371f76700749f9e322bbdcb788fa"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":276}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffafb41f4-47b2-4417-b206-d4a60106dd0e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffafb41f4-47b2-4417-b206-d4a60106dd0e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:40.100221503Z"}]},"request_id":"9b8e7217-7b5d-43bb-b252-551e5fd70f30","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679680.1102586} 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":"7539371f76700749f9e322bbdcb788fa"},"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":"06/Jun/2024:13:14:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.318","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7539371f76700749f9e322bbdcb788fa"} device-1 | {"level":"info","message":"POST /devices? 201 312ms","method":"POST","requestID":"7539371f76700749f9e322bbdcb788fa","responseTime":312,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4MH0.Tyg8cR0Yndizvw--r0i9zPnyZRxpVowRWXnVFCQFXCU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"4f450d00f5d71b97cfb79086eba20687","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":25,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:40Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":25,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.27493,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:40Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/fafb41f4-47b2-4417-b206-d4a60106dd0e","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/fafb41f4-47b2-4417-b206-d4a60106dd0e","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679680,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4MH0.Tyg8cR0Yndizvw--r0i9zPnyZRxpVowRWXnVFCQFXCU"} 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":"4f450d00f5d71b97cfb79086eba20687"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffafb41f4-47b2-4417-b206-d4a60106dd0e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffafb41f4-47b2-4417-b206-d4a60106dd0e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:40.100221503Z"}]},"request_id":"0f45399f-4bbf-4e61-a94b-370f030ee382","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679680.8978894} 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":"4f450d00f5d71b97cfb79086eba20687"},"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":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"846eb5c5-7be7-4f5e-945e-adb72865e657","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679680.9073174} 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":"4f450d00f5d71b97cfb79086eba20687"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffafb41f4-47b2-4417-b206-d4a60106dd0e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffafb41f4-47b2-4417-b206-d4a60106dd0e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:40.100221503Z"}]},"request_id":"70040459-0273-4445-8c5a-285ba8e682fb","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679680.9284523} 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":"4f450d00f5d71b97cfb79086eba20687"},"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/fafb41f4-47b2-4417-b206-d4a60106dd0e 200 73ms","method":"PATCH","requestID":"4f450d00f5d71b97cfb79086eba20687","responseTime":73,"status":200,"url":"/devices/fafb41f4-47b2-4417-b206-d4a60106dd0e"} gateway-1 | {"time_local":"06/Jun/2024:13:14:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/fafb41f4-47b2-4417-b206-d4a60106dd0e HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.082","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"4f450d00f5d71b97cfb79086eba20687"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4MH0.Tyg8cR0Yndizvw--r0i9zPnyZRxpVowRWXnVFCQFXCU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"87cd15d793df7be7155626ffe774fc20","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":26,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:40Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":26,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.250755,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:40Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/fafb41f4-47b2-4417-b206-d4a60106dd0e","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/fafb41f4-47b2-4417-b206-d4a60106dd0e","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679680,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4MH0.Tyg8cR0Yndizvw--r0i9zPnyZRxpVowRWXnVFCQFXCU"} 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":"87cd15d793df7be7155626ffe774fc20"},"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":"06/Jun/2024:13:14:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/fafb41f4-47b2-4417-b206-d4a60106dd0e/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":"87cd15d793df7be7155626ffe774fc20"} device-1 | {"level":"info","message":"POST /devices/fafb41f4-47b2-4417-b206-d4a60106dd0e/websocket 200 23ms","method":"POST","requestID":"87cd15d793df7be7155626ffe774fc20","responseTime":23,"status":200,"url":"/devices/fafb41f4-47b2-4417-b206-d4a60106dd0e/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/fafb41f4-47b2-4417-b206-d4a60106dd0e' 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"64357ed47717e5bd2a8f6cf709d36acb","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"06/Jun/2024:13:14:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/1af42d0a-44d3-475e-a07b-97d7ce63da00/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.006","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"64357ed47717e5bd2a8f6cf709d36acb"} device-1 | {"level":"info","message":"OPTIONS /devices/1af42d0a-44d3-475e-a07b-97d7ce63da00/websocket 200 1ms","method":"OPTIONS","requestID":"64357ed47717e5bd2a8f6cf709d36acb","responseTime":1,"status":200,"url":"/devices/1af42d0a-44d3-475e-a07b-97d7ce63da00/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4Mn0.bPg4cXjIGFt_TnuTeEKQMFliVh2h3Pcir2JH2qeaxLA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 9ms","method":"GET","requestID":"702612172fca2c7ef1ad2e6afe7d130d","responseTime":9,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":27,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:42Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":27,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.472828,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:42Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1af42d0a-44d3-475e-a07b-97d7ce63da00","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/1af42d0a-44d3-475e-a07b-97d7ce63da00","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679682,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4Mn0.bPg4cXjIGFt_TnuTeEKQMFliVh2h3Pcir2JH2qeaxLA"} 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":"702612172fca2c7ef1ad2e6afe7d130d"},"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":"06/Jun/2024:13:14:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/1af42d0a-44d3-475e-a07b-97d7ce63da00/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":"702612172fca2c7ef1ad2e6afe7d130d"} device-1 | {"level":"info","message":"POST /devices/1af42d0a-44d3-475e-a07b-97d7ce63da00/websocket 200 29ms","method":"POST","requestID":"702612172fca2c7ef1ad2e6afe7d130d","responseTime":29,"status":200,"url":"/devices/1af42d0a-44d3-475e-a07b-97d7ce63da00/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/1af42d0a-44d3-475e-a07b-97d7ce63da00' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4Mn0.bPg4cXjIGFt_TnuTeEKQMFliVh2h3Pcir2JH2qeaxLA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"5657e7ad5e265c424a2b928ace5292f5","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":28,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:42Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":28,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.148763,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1af42d0a-44d3-475e-a07b-97d7ce63da00","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/1af42d0a-44d3-475e-a07b-97d7ce63da00","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679682,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4Mn0.bPg4cXjIGFt_TnuTeEKQMFliVh2h3Pcir2JH2qeaxLA"} 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":"5657e7ad5e265c424a2b928ace5292f5"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1af42d0a-44d3-475e-a07b-97d7ce63da00","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1af42d0a-44d3-475e-a07b-97d7ce63da00","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:39.785120300Z"}]},"request_id":"8a6c9914-e8c8-41c5-ac51-930fa4f991e0","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679682.2274063} 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":"5657e7ad5e265c424a2b928ace5292f5"},"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":"06/Jun/2024:13:14:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1af42d0a-44d3-475e-a07b-97d7ce63da00? 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":"5657e7ad5e265c424a2b928ace5292f5"} device-1 | {"level":"info","message":"GET /devices/1af42d0a-44d3-475e-a07b-97d7ce63da00? 200 23ms","method":"GET","requestID":"5657e7ad5e265c424a2b928ace5292f5","responseTime":23,"status":200,"url":"/devices/1af42d0a-44d3-475e-a07b-97d7ce63da00?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4Mn0.bPg4cXjIGFt_TnuTeEKQMFliVh2h3Pcir2JH2qeaxLA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"164dcdb28835515fbca4f004ea1d18ed","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":29,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:42Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":29,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.336581,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fafb41f4-47b2-4417-b206-d4a60106dd0e","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/fafb41f4-47b2-4417-b206-d4a60106dd0e","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679682,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4Mn0.bPg4cXjIGFt_TnuTeEKQMFliVh2h3Pcir2JH2qeaxLA"} 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":"164dcdb28835515fbca4f004ea1d18ed"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffafb41f4-47b2-4417-b206-d4a60106dd0e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffafb41f4-47b2-4417-b206-d4a60106dd0e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:40.100221503Z"}]},"request_id":"c0563cbc-5ac9-4860-a6ac-b95871229a6b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679682.2606637} 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":"164dcdb28835515fbca4f004ea1d18ed"},"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":"06/Jun/2024:13:14:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/fafb41f4-47b2-4417-b206-d4a60106dd0e? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.030","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"164dcdb28835515fbca4f004ea1d18ed"} device-1 | {"level":"info","message":"GET /devices/fafb41f4-47b2-4417-b206-d4a60106dd0e? 200 23ms","method":"GET","requestID":"164dcdb28835515fbca4f004ea1d18ed","responseTime":23,"status":200,"url":"/devices/fafb41f4-47b2-4417-b206-d4a60106dd0e?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4Mn0.bPg4cXjIGFt_TnuTeEKQMFliVh2h3Pcir2JH2qeaxLA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"4c6a1d95f96c100c47fc51a246098e36","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:36466","level":"info","msg":"Received request.","req_id":30,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:42Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":30,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.338609,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:42Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679682,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4Mn0.bPg4cXjIGFt_TnuTeEKQMFliVh2h3Pcir2JH2qeaxLA"} 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":"4c6a1d95f96c100c47fc51a246098e36"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a1fd552c-9a7b-4029-8199-45b286b21a90"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a1fd552c-9a7b-4029-8199-45b286b21a90"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a1fd552c-9a7b-4029-8199-45b286b21a90"},"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:36466","level":"info","msg":"Received request.","req_id":31,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:42Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":31,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.123124,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1af42d0a-44d3-475e-a07b-97d7ce63da00","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/1af42d0a-44d3-475e-a07b-97d7ce63da00","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679682,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4Mn0.bPg4cXjIGFt_TnuTeEKQMFliVh2h3Pcir2JH2qeaxLA"} 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":"bcaa5d20-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:55890","level":"info","msg":"Received request.","req_id":32,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:42Z"} authorization-1 | {"client_addr":"127.0.0.1:55890","level":"info","msg":"Sent response.","req_id":32,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.393364,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fafb41f4-47b2-4417-b206-d4a60106dd0e","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/fafb41f4-47b2-4417-b206-d4a60106dd0e","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679682,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4Mn0.bPg4cXjIGFt_TnuTeEKQMFliVh2h3Pcir2JH2qeaxLA"} 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":"bcaad250-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1af42d0a-44d3-475e-a07b-97d7ce63da00","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1af42d0a-44d3-475e-a07b-97d7ce63da00","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:39.785120300Z"}]},"request_id":"916a4323-66b2-41f9-b042-f8ae23b4a670","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679682.5646532} 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":"bcaa5d20-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"getDevicesByDeviceId 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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffafb41f4-47b2-4417-b206-d4a60106dd0e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffafb41f4-47b2-4417-b206-d4a60106dd0e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:40.100221503Z"}]},"request_id":"1d74207e-1b7b-4610-8555-fee7f0a3aaf9","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679682.5715325} device-1 | {"level":"info","message":"GET /devices/1af42d0a-44d3-475e-a07b-97d7ce63da00? 200 27ms","method":"GET","requestID":"bcaa5d20-2406-11ef-9563-e3996e819f8c","responseTime":27,"status":200,"url":"/devices/1af42d0a-44d3-475e-a07b-97d7ce63da00?"} 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":"bcaad250-2406-11ef-9563-e3996e819f8c"},"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/fafb41f4-47b2-4417-b206-d4a60106dd0e? 200 29ms","method":"GET","requestID":"bcaad250-2406-11ef-9563-e3996e819f8c","responseTime":29,"status":200,"url":"/devices/fafb41f4-47b2-4417-b206-d4a60106dd0e?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a1fd552c-9a7b-4029-8199-45b286b21a90"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a1fd552c-9a7b-4029-8199-45b286b21a90"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a1fd552c-9a7b-4029-8199-45b286b21a90"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a1fd552c-9a7b-4029-8199-45b286b21a90"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a1fd552c-9a7b-4029-8199-45b286b21a90"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a1fd552c-9a7b-4029-8199-45b286b21a90"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a1fd552c-9a7b-4029-8199-45b286b21a90"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a1fd552c-9a7b-4029-8199-45b286b21a90"},"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/a1fd552c-9a7b-4029-8199-45b286b21a90"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":33,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:42Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":33,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.987511,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:42Z"} authorization-1 | {"client_addr":"127.0.0.1:55890","level":"info","msg":"Received request.","req_id":34,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:42Z"} authorization-1 | {"client_addr":"127.0.0.1:55890","level":"info","msg":"Sent response.","req_id":34,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.787781,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1af42d0a-44d3-475e-a07b-97d7ce63da00","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/1af42d0a-44d3-475e-a07b-97d7ce63da00","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679682,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4Mn0.bPg4cXjIGFt_TnuTeEKQMFliVh2h3Pcir2JH2qeaxLA"} 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":"bce0fd80-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fafb41f4-47b2-4417-b206-d4a60106dd0e","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/fafb41f4-47b2-4417-b206-d4a60106dd0e","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679682,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4Mn0.bPg4cXjIGFt_TnuTeEKQMFliVh2h3Pcir2JH2qeaxLA"} 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":"bce172b0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1af42d0a-44d3-475e-a07b-97d7ce63da00","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1af42d0a-44d3-475e-a07b-97d7ce63da00","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:39.785120300Z"}]},"request_id":"77972805-7e97-4eba-bee8-d0e64d7fce19","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679682.9251578} 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":"bce0fd80-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffafb41f4-47b2-4417-b206-d4a60106dd0e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffafb41f4-47b2-4417-b206-d4a60106dd0e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:40.100221503Z"}]},"request_id":"a6ea2844-45f6-4696-bf88-85069fcbd843","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679682.9270022} 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":"bce172b0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa1fd552c-9a7b-4029-8199-45b286b21a90#owner@http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa1fd552c-9a7b-4029-8199-45b286b21a90","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"69596c79-81f8-4ee1-a0b4-10f8f8327e6e","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679682.9345539} 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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4897571d-9c16-40d8-a233-305438de8261","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679682.935084} device-1 | {"level":"info","message":"GET /devices/1af42d0a-44d3-475e-a07b-97d7ce63da00? 200 33ms","method":"GET","requestID":"bce0fd80-2406-11ef-9563-e3996e819f8c","responseTime":33,"status":200,"url":"/devices/1af42d0a-44d3-475e-a07b-97d7ce63da00?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/fafb41f4-47b2-4417-b206-d4a60106dd0e? 200 32ms","method":"GET","requestID":"bce172b0-2406-11ef-9563-e3996e819f8c","responseTime":32,"status":200,"url":"/devices/fafb41f4-47b2-4417-b206-d4a60106dd0e?"} 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":"4c6a1d95f96c100c47fc51a246098e36"},"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:36466","level":"info","msg":"Received request.","req_id":35,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:42Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":35,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.445303,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:42Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/1af42d0a-44d3-475e-a07b-97d7ce63da00","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1af42d0a-44d3-475e-a07b-97d7ce63da00","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bce73f10-2406-11ef-9563-e3996e819f8c"},"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/1af42d0a-44d3-475e-a07b-97d7ce63da00/signaling 200 17ms","method":"POST","requestID":"bce73f10-2406-11ef-9563-e3996e819f8c","responseTime":17,"status":200,"url":"/devices/1af42d0a-44d3-475e-a07b-97d7ce63da00/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/a1fd552c-9a7b-4029-8199-45b286b21a90","user":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"06/Jun/2024:13:14:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"811","request_time":"0.692","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4c6a1d95f96c100c47fc51a246098e36"} experiment-1 | {"level":"info","message":"POST /experiments? 201 684ms","method":"POST","requestID":"4c6a1d95f96c100c47fc51a246098e36","responseTime":684,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4Mn0.bPg4cXjIGFt_TnuTeEKQMFliVh2h3Pcir2JH2qeaxLA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 8ms","method":"GET","requestID":"48dd328124f99250bd34b6d255290100","responseTime":8,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":36,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:42Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":36,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.364817,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:42Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/fafb41f4-47b2-4417-b206-d4a60106dd0e","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/fafb41f4-47b2-4417-b206-d4a60106dd0e","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bceb84d0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:55890","level":"info","msg":"Received request.","req_id":37,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:42Z"} authorization-1 | {"client_addr":"127.0.0.1:55890","level":"info","msg":"Sent response.","req_id":37,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.594856,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:42Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/fafb41f4-47b2-4417-b206-d4a60106dd0e/signaling 200 16ms","method":"POST","requestID":"bceb84d0-2406-11ef-9563-e3996e819f8c","responseTime":16,"status":200,"url":"/devices/fafb41f4-47b2-4417-b206-d4a60106dd0e/signaling"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1af42d0a-44d3-475e-a07b-97d7ce63da00","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/1af42d0a-44d3-475e-a07b-97d7ce63da00","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679682,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4Mn0.bPg4cXjIGFt_TnuTeEKQMFliVh2h3Pcir2JH2qeaxLA"} 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":"48dd328124f99250bd34b6d255290100"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a1fd552c-9a7b-4029-8199-45b286b21a90"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a1fd552c-9a7b-4029-8199-45b286b21a90"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"e43504de-dc6d-4b7d-94a5-54620cb65173"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"b0d5f2b7-8b96-4029-b49d-a9fb0e661e80"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"1827985d-e2a8-4978-8b7d-8a1065606f89"}]},"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/1af42d0a-44d3-475e-a07b-97d7ce63da00"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/fafb41f4-47b2-4417-b206-d4a60106dd0e"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} 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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1af42d0a-44d3-475e-a07b-97d7ce63da00","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1af42d0a-44d3-475e-a07b-97d7ce63da00","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:39.785120300Z"}]},"request_id":"f1cc91c9-61ca-4dd2-87e9-f379e18b0bff","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679682.997378} 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":"48dd328124f99250bd34b6d255290100"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":38,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:42Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":38,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.962173,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:43Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679682,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4Mn0.bPg4cXjIGFt_TnuTeEKQMFliVh2h3Pcir2JH2qeaxLA"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","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":"bceee030-2406-11ef-9563-e3996e819f8c"},"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":"06/Jun/2024:13:14:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1af42d0a-44d3-475e-a07b-97d7ce63da00? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"48dd328124f99250bd34b6d255290100"} device-1 | {"level":"info","message":"GET /devices/1af42d0a-44d3-475e-a07b-97d7ce63da00? 200 30ms","method":"GET","requestID":"48dd328124f99250bd34b6d255290100","responseTime":30,"status":200,"url":"/devices/1af42d0a-44d3-475e-a07b-97d7ce63da00?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4M30.0oaA7vwv5ioNjbHLKm2AXx274ijdtYEh6lV7lJaK5Ig","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"de218ffae1db59c1618bd578236d3521","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"87c5fb28-675f-4634-8ffc-0ed5ee63ce66","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679683.020426} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3f347539-f4f0-412e-b43a-febd285b8235","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679683.0205936} 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":"bceee030-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":39,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:43Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":39,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.800158,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fafb41f4-47b2-4417-b206-d4a60106dd0e","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/fafb41f4-47b2-4417-b206-d4a60106dd0e","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679683,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4M30.0oaA7vwv5ioNjbHLKm2AXx274ijdtYEh6lV7lJaK5Ig"} 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":"de218ffae1db59c1618bd578236d3521"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffafb41f4-47b2-4417-b206-d4a60106dd0e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffafb41f4-47b2-4417-b206-d4a60106dd0e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:40.100221503Z"}]},"request_id":"3da87b8c-08c0-42ce-a8ef-1619e4eab414","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679683.0305405} 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":"de218ffae1db59c1618bd578236d3521"},"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/c2d07e41-4986-483a-905b-d18ede964cbd'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/c2d07e41-4986-483a-905b-d18ede964cbd'"} 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 257ms","method":"POST","requestID":"bceee030-2406-11ef-9563-e3996e819f8c","responseTime":257,"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":"06/Jun/2024:13:14:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/fafb41f4-47b2-4417-b206-d4a60106dd0e? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.243","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"de218ffae1db59c1618bd578236d3521"} device-1 | {"level":"info","message":"GET /devices/fafb41f4-47b2-4417-b206-d4a60106dd0e? 200 237ms","method":"GET","requestID":"de218ffae1db59c1618bd578236d3521","responseTime":237,"status":200,"url":"/devices/fafb41f4-47b2-4417-b206-d4a60106dd0e?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"c2d07e41-4986-483a-905b-d18ede964cbd","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a1fd552c-9a7b-4029-8199-45b286b21a90"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/c2d07e41-4986-483a-905b-d18ede964cbd' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c2d07e41-4986-483a-905b-d18ede964cbd","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"db600ff7bacab5cdc75b24f11e5556a8","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/1af42d0a-44d3-475e-a07b-97d7ce63da00"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/fafb41f4-47b2-4417-b206-d4a60106dd0e"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/c2d07e41-4986-483a-905b-d18ede964cbd"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"db600ff7bacab5cdc75b24f11e5556a8","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:14: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.010","http_referrer":"","http_user_agent":"node-fetch","requestID":"db600ff7bacab5cdc75b24f11e5556a8"} device-1 | {"data":{"peerconnection":"c2d07e41-4986-483a-905b-d18ede964cbd","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4M30.0oaA7vwv5ioNjbHLKm2AXx274ijdtYEh6lV7lJaK5Ig","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"d596eb20e28a5f2d2f73d93a36a09dff","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/a1fd552c-9a7b-4029-8199-45b286b21a90"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":40,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:43Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":40,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.178921,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/a1fd552c-9a7b-4029-8199-45b286b21a90","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/a1fd552c-9a7b-4029-8199-45b286b21a90","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679683,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4M30.0oaA7vwv5ioNjbHLKm2AXx274ijdtYEh6lV7lJaK5Ig"} 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":"d596eb20e28a5f2d2f73d93a36a09dff"},"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/a1fd552c-9a7b-4029-8199-45b286b21a90"} gateway-1 | {"time_local":"06/Jun/2024:13:14:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/a1fd552c-9a7b-4029-8199-45b286b21a90 HTTP/1.1","status": "200","body_bytes_sent":"882","request_time":"0.031","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d596eb20e28a5f2d2f73d93a36a09dff"} experiment-1 | {"level":"info","message":"GET /experiments/a1fd552c-9a7b-4029-8199-45b286b21a90 200 23ms","method":"GET","requestID":"d596eb20e28a5f2d2f73d93a36a09dff","responseTime":23,"status":200,"url":"/experiments/a1fd552c-9a7b-4029-8199-45b286b21a90"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4M30.0oaA7vwv5ioNjbHLKm2AXx274ijdtYEh6lV7lJaK5Ig","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"f7de8ad4f5ad9011d4d7416bf4351b50","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/a1fd552c-9a7b-4029-8199-45b286b21a90"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":41,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:43Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":41,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.219643,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/a1fd552c-9a7b-4029-8199-45b286b21a90","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/a1fd552c-9a7b-4029-8199-45b286b21a90","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679683,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4M30.0oaA7vwv5ioNjbHLKm2AXx274ijdtYEh6lV7lJaK5Ig"} 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":"f7de8ad4f5ad9011d4d7416bf4351b50"},"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/a1fd552c-9a7b-4029-8199-45b286b21a90"} device-1 | {"data":{"peerconnection":"c2d07e41-4986-483a-905b-d18ede964cbd","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} gateway-1 | {"time_local":"06/Jun/2024:13:14:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/a1fd552c-9a7b-4029-8199-45b286b21a90 HTTP/1.1","status": "200","body_bytes_sent":"882","request_time":"0.030","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f7de8ad4f5ad9011d4d7416bf4351b50"} experiment-1 | {"level":"info","message":"GET /experiments/a1fd552c-9a7b-4029-8199-45b286b21a90 200 22ms","method":"GET","requestID":"f7de8ad4f5ad9011d4d7416bf4351b50","responseTime":22,"status":200,"url":"/experiments/a1fd552c-9a7b-4029-8199-45b286b21a90"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/c2d07e41-4986-483a-905b-d18ede964cbd' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c2d07e41-4986-483a-905b-d18ede964cbd","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"8fbf94f36168f13d921f4ba481d792e9","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/1af42d0a-44d3-475e-a07b-97d7ce63da00"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/fafb41f4-47b2-4417-b206-d4a60106dd0e"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/c2d07e41-4986-483a-905b-d18ede964cbd"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":42,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:43Z"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","contextual_tuples":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc2d07e41-4986-483a-905b-d18ede964cbd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a5786f65-191a-404e-a5ae-aff62aa93ad7","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679683.6492012} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":42,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":4.258647,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/c2d07e41-4986-483a-905b-d18ede964cbd","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/c2d07e41-4986-483a-905b-d18ede964cbd","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":"bd517290-2406-11ef-9563-e3996e819f8c"},"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/c2d07e41-4986-483a-905b-d18ede964cbd 200 15ms","method":"GET","requestID":"bd517290-2406-11ef-9563-e3996e819f8c","responseTime":15,"status":200,"url":"/peerconnections/c2d07e41-4986-483a-905b-d18ede964cbd"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 51ms","method":"POST","requestID":"8fbf94f36168f13d921f4ba481d792e9","responseTime":51,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:14: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.056","http_referrer":"","http_user_agent":"node-fetch","requestID":"8fbf94f36168f13d921f4ba481d792e9"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4M30.0oaA7vwv5ioNjbHLKm2AXx274ijdtYEh6lV7lJaK5Ig","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"e5ed23b06fc6e697f43383388f925394","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/a1fd552c-9a7b-4029-8199-45b286b21a90"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":43,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:43Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":43,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.297581,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/a1fd552c-9a7b-4029-8199-45b286b21a90","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/a1fd552c-9a7b-4029-8199-45b286b21a90","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679683,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4M30.0oaA7vwv5ioNjbHLKm2AXx274ijdtYEh6lV7lJaK5Ig"} 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":"e5ed23b06fc6e697f43383388f925394"},"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/a1fd552c-9a7b-4029-8199-45b286b21a90"} gateway-1 | {"time_local":"06/Jun/2024:13:14:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/a1fd552c-9a7b-4029-8199-45b286b21a90 HTTP/1.1","status": "200","body_bytes_sent":"884","request_time":"0.028","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e5ed23b06fc6e697f43383388f925394"} experiment-1 | {"level":"info","message":"GET /experiments/a1fd552c-9a7b-4029-8199-45b286b21a90 200 21ms","method":"GET","requestID":"e5ed23b06fc6e697f43383388f925394","responseTime":21,"status":200,"url":"/experiments/a1fd552c-9a7b-4029-8199-45b286b21a90"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4M30.0oaA7vwv5ioNjbHLKm2AXx274ijdtYEh6lV7lJaK5Ig","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"6427daa33f85fb699443af4f6a2a0c2d","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/a1fd552c-9a7b-4029-8199-45b286b21a90"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":44,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:43Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":44,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.304027,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:43Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/a1fd552c-9a7b-4029-8199-45b286b21a90","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/a1fd552c-9a7b-4029-8199-45b286b21a90","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679683,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4M30.0oaA7vwv5ioNjbHLKm2AXx274ijdtYEh6lV7lJaK5Ig"} 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":"6427daa33f85fb699443af4f6a2a0c2d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a1fd552c-9a7b-4029-8199-45b286b21a90"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":45,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:43Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":45,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.191216,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:43Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/c2d07e41-4986-483a-905b-d18ede964cbd","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:http://localhost/peerconnections/c2d07e41-4986-483a-905b-d18ede964cbd","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679683,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4M30.0oaA7vwv5ioNjbHLKm2AXx274ijdtYEh6lV7lJaK5Ig"} 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":"bd665a20-2406-11ef-9563-e3996e819f8c"},"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/c2d07e41-4986-483a-905b-d18ede964cbd' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/c2d07e41-4986-483a-905b-d18ede964cbd' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c2d07e41-4986-483a-905b-d18ede964cbd","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"ec811848492819d383bb074570646a90","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc2d07e41-4986-483a-905b-d18ede964cbd': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc2d07e41-4986-483a-905b-d18ede964cbd","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"6e1f3029-528b-450f-8f8f-6a10ba250e3a","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679683.8112903} 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/1af42d0a-44d3-475e-a07b-97d7ce63da00"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/fafb41f4-47b2-4417-b206-d4a60106dd0e"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/c2d07e41-4986-483a-905b-d18ede964cbd"}}},"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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3571321a-628b-40e9-95ad-c79dbdcaab23","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679683.8121033} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"900c355e7190b9bd46adebda4dc5aeb5","responseTime":5,"status":200,"url":"/auth"} 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":"bd665a20-2406-11ef-9563-e3996e819f8c"},"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":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/1af42d0a-44d3-475e-a07b-97d7ce63da00"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/fafb41f4-47b2-4417-b206-d4a60106dd0e"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/c2d07e41-4986-483a-905b-d18ede964cbd"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"c2d07e41-4986-483a-905b-d18ede964cbd","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/c2d07e41-4986-483a-905b-d18ede964cbd 204 283ms","method":"DELETE","requestID":"bd665a20-2406-11ef-9563-e3996e819f8c","responseTime":283,"status":204,"url":"/peerconnections/c2d07e41-4986-483a-905b-d18ede964cbd"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a1fd552c-9a7b-4029-8199-45b286b21a90"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa1fd552c-9a7b-4029-8199-45b286b21a90': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa1fd552c-9a7b-4029-8199-45b286b21a90","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"1c93dbd7-e2b5-4170-8188-4307890efa74","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679684.1022272} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b38111bd-e19f-4edf-828f-1517426a8005","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679684.1027453} 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":"6427daa33f85fb699443af4f6a2a0c2d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":19}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/a1fd552c-9a7b-4029-8199-45b286b21a90"} gateway-1 | {"time_local":"06/Jun/2024:13:14:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/a1fd552c-9a7b-4029-8199-45b286b21a90 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.741","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6427daa33f85fb699443af4f6a2a0c2d"} gateway-1 | {"time_local":"06/Jun/2024:13:14:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1439","request_time":"3.515","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"b75df5b7fdf471a34c4d874a94efebf5"} experiment-1 | {"level":"info","message":"DELETE /experiments/a1fd552c-9a7b-4029-8199-45b286b21a90 204 737ms","method":"DELETE","requestID":"6427daa33f85fb699443af4f6a2a0c2d","responseTime":737,"status":204,"url":"/experiments/a1fd552c-9a7b-4029-8199-45b286b21a90"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 684ms","method":"POST","requestID":"ec811848492819d383bb074570646a90","responseTime":684,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4NH0.gl4-ztAxjtBcEyaH0n2kP-1V7YzkpNcwu5H06Gvm55s","level":"info","message":"auth send jwt"} gateway-1 | {"time_local":"06/Jun/2024:13:14:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.694","http_referrer":"","http_user_agent":"node-fetch","requestID":"ec811848492819d383bb074570646a90"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"80539a26319731a329b6ec71f3f13a4f","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 681ms","method":"POST","requestID":"900c355e7190b9bd46adebda4dc5aeb5","responseTime":681,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:14:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.694","http_referrer":"","http_user_agent":"node-fetch","requestID":"900c355e7190b9bd46adebda4dc5aeb5"} gateway-1 | {"time_local":"06/Jun/2024:13:14:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1521","request_time":"2.316","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"aaca18941cf65309912e54bb84c77db5"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":46,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:44Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":46,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.96249,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:44Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679684,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4NH0.gl4-ztAxjtBcEyaH0n2kP-1V7YzkpNcwu5H06Gvm55s"} 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":"80539a26319731a329b6ec71f3f13a4f"},"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/fafb41f4-47b2-4417-b206-d4a60106dd0e' 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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34cfc83a-c37e-4346-ac56-84a9457b318a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a63100b7-b2af-4317-9ca0-2673e131ac99","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679684.8642707} 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":"80539a26319731a329b6ec71f3f13a4f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/1af42d0a-44d3-475e-a07b-97d7ce63da00' 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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7009ea78-0f64-41b7-a2c9-450876df4377","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679684.8750188} 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":"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":"80539a26319731a329b6ec71f3f13a4f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34cfc83a-c37e-4346-ac56-84a9457b318a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"eddfe7dd-e1f4-458f-87a6-50de1c79aa7e","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679684.8885717} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f53f1c4f-16c8-45ca-be6a-00ebf226a107","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679684.888802} 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":"80539a26319731a329b6ec71f3f13a4f"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34cfc83a-c37e-4346-ac56-84a9457b318a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34cfc83a-c37e-4346-ac56-84a9457b318a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:44.888546973Z"}]},"request_id":"596bdcc6-d7f2-42b3-849b-e7690e2ec898","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679684.8961442} 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":"80539a26319731a329b6ec71f3f13a4f"},"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":"06/Jun/2024:13:14:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.405","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"80539a26319731a329b6ec71f3f13a4f"} device-1 | {"level":"info","message":"POST /devices? 201 395ms","method":"POST","requestID":"80539a26319731a329b6ec71f3f13a4f","responseTime":395,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4NH0.gl4-ztAxjtBcEyaH0n2kP-1V7YzkpNcwu5H06Gvm55s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"dddf00be6fe900feaf0917bd1dabe081","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":47,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:44Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":47,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.300668,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:44Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679684,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4NH0.gl4-ztAxjtBcEyaH0n2kP-1V7YzkpNcwu5H06Gvm55s"} 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":"dddf00be6fe900feaf0917bd1dabe081"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0a0a7fee-38c1-4a9e-86f7-2a5715c30c61","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e88f0bfc-3227-4138-adb0-d2f2e26da6c2","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679684.9332707} 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":"dddf00be6fe900feaf0917bd1dabe081"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"40febbe3-5fc0-4182-a9ca-337e41f4af25","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679684.942501} 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":"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":"dddf00be6fe900feaf0917bd1dabe081"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0a0a7fee-38c1-4a9e-86f7-2a5715c30c61","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"3c54ddc0-36d7-4888-86f8-e199ba9826c5","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679685.3160412} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"725dc408-8cd9-46d8-bc2d-f9a2ee19e4fd","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679685.3166182} authorization-1 | {"level":"info","message":"POST /relations/update 200 378ms","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":"dddf00be6fe900feaf0917bd1dabe081"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":378}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0a0a7fee-38c1-4a9e-86f7-2a5715c30c61","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0a0a7fee-38c1-4a9e-86f7-2a5715c30c61","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:45.316012757Z"}]},"request_id":"4a90e8c6-fed9-4f30-9801-05781c2851fb","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679685.3246288} 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":"dddf00be6fe900feaf0917bd1dabe081"},"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":"06/Jun/2024:13:14:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.426","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"dddf00be6fe900feaf0917bd1dabe081"} device-1 | {"level":"info","message":"POST /devices? 201 419ms","method":"POST","requestID":"dddf00be6fe900feaf0917bd1dabe081","responseTime":419,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4NX0.K6Q9QQQKreWx2X3G-uO4pwADozDd5BddSghyjebWnEI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9ee121c7e92a35ae34957a35efd87f9e","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":48,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:45Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":48,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.558402,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:45Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/34cfc83a-c37e-4346-ac56-84a9457b318a","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/34cfc83a-c37e-4346-ac56-84a9457b318a","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679685,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4NX0.K6Q9QQQKreWx2X3G-uO4pwADozDd5BddSghyjebWnEI"} 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":"9ee121c7e92a35ae34957a35efd87f9e"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34cfc83a-c37e-4346-ac56-84a9457b318a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34cfc83a-c37e-4346-ac56-84a9457b318a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:44.888546973Z"}]},"request_id":"fb51a595-4476-4b3a-bf88-17fa2d0cc616","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679685.81796} 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":"9ee121c7e92a35ae34957a35efd87f9e"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1d8216bd-4365-4436-a85a-afcbee09a4e8","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679685.8246405} 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":"9ee121c7e92a35ae34957a35efd87f9e"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34cfc83a-c37e-4346-ac56-84a9457b318a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34cfc83a-c37e-4346-ac56-84a9457b318a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:44.888546973Z"}]},"request_id":"d0831ecc-783d-4e42-aa83-5931c425560c","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679685.8495076} 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":"9ee121c7e92a35ae34957a35efd87f9e"},"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":"06/Jun/2024:13:14:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/34cfc83a-c37e-4346-ac56-84a9457b318a HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.055","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"9ee121c7e92a35ae34957a35efd87f9e"} device-1 | {"level":"info","message":"PATCH /devices/34cfc83a-c37e-4346-ac56-84a9457b318a 200 50ms","method":"PATCH","requestID":"9ee121c7e92a35ae34957a35efd87f9e","responseTime":50,"status":200,"url":"/devices/34cfc83a-c37e-4346-ac56-84a9457b318a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4NX0.K6Q9QQQKreWx2X3G-uO4pwADozDd5BddSghyjebWnEI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"740da4a713b42e0bd90d1c0d009257c9","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":49,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:45Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":49,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.358405,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:45Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/34cfc83a-c37e-4346-ac56-84a9457b318a","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/34cfc83a-c37e-4346-ac56-84a9457b318a","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679685,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4NX0.K6Q9QQQKreWx2X3G-uO4pwADozDd5BddSghyjebWnEI"} 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":"740da4a713b42e0bd90d1c0d009257c9"},"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":"06/Jun/2024:13:14:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/34cfc83a-c37e-4346-ac56-84a9457b318a/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.033","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"740da4a713b42e0bd90d1c0d009257c9"} device-1 | {"level":"info","message":"POST /devices/34cfc83a-c37e-4346-ac56-84a9457b318a/websocket 200 25ms","method":"POST","requestID":"740da4a713b42e0bd90d1c0d009257c9","responseTime":25,"status":200,"url":"/devices/34cfc83a-c37e-4346-ac56-84a9457b318a/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/34cfc83a-c37e-4346-ac56-84a9457b318a' 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f32979499d4f5d8ea47dde58e82a01b5","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"06/Jun/2024:13:14:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61/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":"f32979499d4f5d8ea47dde58e82a01b5"} device-1 | {"level":"info","message":"OPTIONS /devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61/websocket 200 2ms","method":"OPTIONS","requestID":"f32979499d4f5d8ea47dde58e82a01b5","responseTime":2,"status":200,"url":"/devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4N30.b5jtPpnMJvRSMSUplqX9Q5KRwW123ltglpmdLmxzgAc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"242366e46d8211052d91ac8138549ba9","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":50,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:47Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":50,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.183857,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:47Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679687,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4N30.b5jtPpnMJvRSMSUplqX9Q5KRwW123ltglpmdLmxzgAc"} 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":"242366e46d8211052d91ac8138549ba9"},"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":"06/Jun/2024:13:14:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.036","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"242366e46d8211052d91ac8138549ba9"} device-1 | {"level":"info","message":"POST /devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61/websocket 200 30ms","method":"POST","requestID":"242366e46d8211052d91ac8138549ba9","responseTime":30,"status":200,"url":"/devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4N30.b5jtPpnMJvRSMSUplqX9Q5KRwW123ltglpmdLmxzgAc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1f63f52c00b8bcf8fa7c37e9522b245c","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":51,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:47Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":51,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.366806,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/34cfc83a-c37e-4346-ac56-84a9457b318a","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/34cfc83a-c37e-4346-ac56-84a9457b318a","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679687,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4N30.b5jtPpnMJvRSMSUplqX9Q5KRwW123ltglpmdLmxzgAc"} 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":"1f63f52c00b8bcf8fa7c37e9522b245c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34cfc83a-c37e-4346-ac56-84a9457b318a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34cfc83a-c37e-4346-ac56-84a9457b318a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:44.888546973Z"}]},"request_id":"3b7bceba-f65c-400f-98bb-29c982e4302b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679687.4158366} 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":"1f63f52c00b8bcf8fa7c37e9522b245c"},"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":"06/Jun/2024:13:14:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/34cfc83a-c37e-4346-ac56-84a9457b318a? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.027","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1f63f52c00b8bcf8fa7c37e9522b245c"} device-1 | {"level":"info","message":"GET /devices/34cfc83a-c37e-4346-ac56-84a9457b318a? 200 20ms","method":"GET","requestID":"1f63f52c00b8bcf8fa7c37e9522b245c","responseTime":20,"status":200,"url":"/devices/34cfc83a-c37e-4346-ac56-84a9457b318a?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4N30.b5jtPpnMJvRSMSUplqX9Q5KRwW123ltglpmdLmxzgAc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"9ced246d5dcdbf83a578202756c90eed","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":52,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:47Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":52,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.472985,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679687,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4N30.b5jtPpnMJvRSMSUplqX9Q5KRwW123ltglpmdLmxzgAc"} 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":"9ced246d5dcdbf83a578202756c90eed"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0a0a7fee-38c1-4a9e-86f7-2a5715c30c61","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0a0a7fee-38c1-4a9e-86f7-2a5715c30c61","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:45.316012757Z"}]},"request_id":"323d2b7d-3599-4c2d-be9a-54fe68e43d98","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679687.4450424} 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":"9ced246d5dcdbf83a578202756c90eed"},"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":"06/Jun/2024:13:14:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61? 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":"9ced246d5dcdbf83a578202756c90eed"} device-1 | {"level":"info","message":"GET /devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61? 200 20ms","method":"GET","requestID":"9ced246d5dcdbf83a578202756c90eed","responseTime":20,"status":200,"url":"/devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4N30.b5jtPpnMJvRSMSUplqX9Q5KRwW123ltglpmdLmxzgAc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"22890ba0c2c6095510ca3b9bc90fd19e","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:36466","level":"info","msg":"Received request.","req_id":53,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:47Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":53,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.245443,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:47Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679687,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4N30.b5jtPpnMJvRSMSUplqX9Q5KRwW123ltglpmdLmxzgAc"} 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":"22890ba0c2c6095510ca3b9bc90fd19e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4b47768-f448-46ce-a155-4c3c7e40315e"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4b47768-f448-46ce-a155-4c3c7e40315e"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4b47768-f448-46ce-a155-4c3c7e40315e"},"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:36466","level":"info","msg":"Received request.","req_id":54,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:47Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":54,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.627231,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/34cfc83a-c37e-4346-ac56-84a9457b318a","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/34cfc83a-c37e-4346-ac56-84a9457b318a","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679687,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4N30.b5jtPpnMJvRSMSUplqX9Q5KRwW123ltglpmdLmxzgAc"} 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":"bfc22470-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:55902","level":"info","msg":"Received request.","req_id":55,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:47Z"} authorization-1 | {"client_addr":"127.0.0.1:55902","level":"info","msg":"Sent response.","req_id":55,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.444554,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679687,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4N30.b5jtPpnMJvRSMSUplqX9Q5KRwW123ltglpmdLmxzgAc"} 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":"bfc27290-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34cfc83a-c37e-4346-ac56-84a9457b318a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34cfc83a-c37e-4346-ac56-84a9457b318a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:44.888546973Z"}]},"request_id":"6180ebd7-9297-48f3-8094-1e35dc83fa85","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679687.745118} 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":"bfc22470-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0a0a7fee-38c1-4a9e-86f7-2a5715c30c61","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0a0a7fee-38c1-4a9e-86f7-2a5715c30c61","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:45.316012757Z"}]},"request_id":"062aa41d-7a23-4b1d-b3d6-f651198b4f0b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679687.749249} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/34cfc83a-c37e-4346-ac56-84a9457b318a? 200 15ms","method":"GET","requestID":"bfc22470-2406-11ef-9563-e3996e819f8c","responseTime":15,"status":200,"url":"/devices/34cfc83a-c37e-4346-ac56-84a9457b318a?"} 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":"bfc27290-2406-11ef-9563-e3996e819f8c"},"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/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61? 200 19ms","method":"GET","requestID":"bfc27290-2406-11ef-9563-e3996e819f8c","responseTime":19,"status":200,"url":"/devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4b47768-f448-46ce-a155-4c3c7e40315e"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4b47768-f448-46ce-a155-4c3c7e40315e"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4b47768-f448-46ce-a155-4c3c7e40315e"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4b47768-f448-46ce-a155-4c3c7e40315e"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4b47768-f448-46ce-a155-4c3c7e40315e"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4b47768-f448-46ce-a155-4c3c7e40315e"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4b47768-f448-46ce-a155-4c3c7e40315e"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4b47768-f448-46ce-a155-4c3c7e40315e"},"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/f4b47768-f448-46ce-a155-4c3c7e40315e"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":56,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:47Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":56,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.617411,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:47Z"} authorization-1 | {"client_addr":"127.0.0.1:55902","level":"info","msg":"Received request.","req_id":57,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/34cfc83a-c37e-4346-ac56-84a9457b318a","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/34cfc83a-c37e-4346-ac56-84a9457b318a","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679687,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4N30.b5jtPpnMJvRSMSUplqX9Q5KRwW123ltglpmdLmxzgAc"} 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":"bfce3260-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:55902","level":"info","msg":"Sent response.","req_id":57,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.667387,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679687,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4N30.b5jtPpnMJvRSMSUplqX9Q5KRwW123ltglpmdLmxzgAc"} 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":"bfce8080-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34cfc83a-c37e-4346-ac56-84a9457b318a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34cfc83a-c37e-4346-ac56-84a9457b318a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:44.888546973Z"}]},"request_id":"96bda7e9-4c89-4268-b3f7-b17f05f2403f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679687.8283424} 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":"bfce3260-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0a0a7fee-38c1-4a9e-86f7-2a5715c30c61","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0a0a7fee-38c1-4a9e-86f7-2a5715c30c61","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:45.316012757Z"}]},"request_id":"0d8056f9-a3a9-48e5-a8de-07f1cb09c13a","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679687.8295736} 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":"bfce8080-2406-11ef-9563-e3996e819f8c"},"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/34cfc83a-c37e-4346-ac56-84a9457b318a? 200 22ms","method":"GET","requestID":"bfce3260-2406-11ef-9563-e3996e819f8c","responseTime":22,"status":200,"url":"/devices/34cfc83a-c37e-4346-ac56-84a9457b318a?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61? 200 22ms","method":"GET","requestID":"bfce8080-2406-11ef-9563-e3996e819f8c","responseTime":22,"status":200,"url":"/devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":58,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:47Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":58,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.942033,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:47Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/34cfc83a-c37e-4346-ac56-84a9457b318a","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/34cfc83a-c37e-4346-ac56-84a9457b318a","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bfd25110-2406-11ef-9563-e3996e819f8c"},"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/34cfc83a-c37e-4346-ac56-84a9457b318a/signaling 200 11ms","method":"POST","requestID":"bfd25110-2406-11ef-9563-e3996e819f8c","responseTime":11,"status":200,"url":"/devices/34cfc83a-c37e-4346-ac56-84a9457b318a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":59,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:47Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":59,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.242543,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:47Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bfd473f0-2406-11ef-9563-e3996e819f8c"},"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/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61/signaling 200 11ms","method":"POST","requestID":"bfd473f0-2406-11ef-9563-e3996e819f8c","responseTime":11,"status":200,"url":"/devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4b47768-f448-46ce-a155-4c3c7e40315e"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4b47768-f448-46ce-a155-4c3c7e40315e"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"4a1390ac-0bd2-4131-bdb6-dfea83b6ad35"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"72fac0a1-9c3a-4d50-8828-97e528401180"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"3e46b7d2-03ab-40e9-aad8-68dcf4d79a92"}]},"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/34cfc83a-c37e-4346-ac56-84a9457b318a"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":60,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:47Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":60,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.058941,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:47Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679687,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4N30.b5jtPpnMJvRSMSUplqX9Q5KRwW123ltglpmdLmxzgAc"} 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":"bfd6bde0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff4b47768-f448-46ce-a155-4c3c7e40315e#owner@http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff4b47768-f448-46ce-a155-4c3c7e40315e","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"aaf7c83c-3018-4cf6-bb0a-5b06fc748919","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679688.1071024} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"15f5a589-8af2-42e8-a736-a1158dd94ca9","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679688.1080048} authorization-1 | {"level":"info","message":"POST /relations/update 200 289ms","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":"22890ba0c2c6095510ca3b9bc90fd19e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":289}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"003d852b-786f-4bd9-9374-62c5fd9d49dc","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679688.1156654} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"efae7702-f87c-42d4-8b73-66029511bc48","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679688.1163065} authorization-1 | {"level":"info","message":"POST /relations/update 200 234ms","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":"bfd6bde0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":234}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/f4b47768-f448-46ce-a155-4c3c7e40315e","user":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"06/Jun/2024:13:14:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"811","request_time":"0.672","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"22890ba0c2c6095510ca3b9bc90fd19e"} experiment-1 | {"level":"info","message":"POST /experiments? 201 664ms","method":"POST","requestID":"22890ba0c2c6095510ca3b9bc90fd19e","responseTime":664,"status":201,"url":"/experiments?"} 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/1def8c30-5097-4c01-b7ea-ea4a6cdef8b1'"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4OH0.uCRg1k2_4y9k5RW6ffsD24DPzEfdmD-Z85LW8gpVhas","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/1def8c30-5097-4c01-b7ea-ea4a6cdef8b1'"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2fc705495b940361d06b0e414c5a45df","responseTime":4,"status":200,"url":"/auth"} 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 267ms","method":"POST","requestID":"bfd6bde0-2406-11ef-9563-e3996e819f8c","responseTime":267,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":61,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:48Z"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":61,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.578895,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/34cfc83a-c37e-4346-ac56-84a9457b318a","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/34cfc83a-c37e-4346-ac56-84a9457b318a","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679688,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4OH0.uCRg1k2_4y9k5RW6ffsD24DPzEfdmD-Z85LW8gpVhas"} 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":"2fc705495b940361d06b0e414c5a45df"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34cfc83a-c37e-4346-ac56-84a9457b318a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34cfc83a-c37e-4346-ac56-84a9457b318a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:44.888546973Z"}]},"request_id":"9a4e0dc9-1301-4b76-9d36-038e61ec576f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679688.1521554} 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":"2fc705495b940361d06b0e414c5a45df"},"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":"06/Jun/2024:13:14:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/34cfc83a-c37e-4346-ac56-84a9457b318a? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.026","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2fc705495b940361d06b0e414c5a45df"} device-1 | {"level":"info","message":"GET /devices/34cfc83a-c37e-4346-ac56-84a9457b318a? 200 17ms","method":"GET","requestID":"2fc705495b940361d06b0e414c5a45df","responseTime":17,"status":200,"url":"/devices/34cfc83a-c37e-4346-ac56-84a9457b318a?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4OH0.uCRg1k2_4y9k5RW6ffsD24DPzEfdmD-Z85LW8gpVhas","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6ee8420b88c35b096e429d5766c29610","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":62,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:48Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":62,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.839692,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679688,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4OH0.uCRg1k2_4y9k5RW6ffsD24DPzEfdmD-Z85LW8gpVhas"} 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":"6ee8420b88c35b096e429d5766c29610"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0a0a7fee-38c1-4a9e-86f7-2a5715c30c61","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0a0a7fee-38c1-4a9e-86f7-2a5715c30c61","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:45.316012757Z"}]},"request_id":"20236ce4-a6de-4481-8c4d-cce7343cf5ed","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679688.174625} 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":"6ee8420b88c35b096e429d5766c29610"},"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":"06/Jun/2024:13:14:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61? 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":"6ee8420b88c35b096e429d5766c29610"} device-1 | {"level":"info","message":"GET /devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61? 200 16ms","method":"GET","requestID":"6ee8420b88c35b096e429d5766c29610","responseTime":16,"status":200,"url":"/devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61?"} device-1 | {"data":{"peerconnection":"1def8c30-5097-4c01-b7ea-ea4a6cdef8b1","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4b47768-f448-46ce-a155-4c3c7e40315e"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/1def8c30-5097-4c01-b7ea-ea4a6cdef8b1' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"1def8c30-5097-4c01-b7ea-ea4a6cdef8b1","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"250f68f73c26f52b73567d00d9dc573a","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/34cfc83a-c37e-4346-ac56-84a9457b318a"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/1def8c30-5097-4c01-b7ea-ea4a6cdef8b1"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 12ms","method":"POST","requestID":"250f68f73c26f52b73567d00d9dc573a","responseTime":12,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:14: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.017","http_referrer":"","http_user_agent":"node-fetch","requestID":"250f68f73c26f52b73567d00d9dc573a"} device-1 | {"data":{"peerconnection":"1def8c30-5097-4c01-b7ea-ea4a6cdef8b1","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"1def8c30-5097-4c01-b7ea-ea4a6cdef8b1","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/1def8c30-5097-4c01-b7ea-ea4a6cdef8b1' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"1def8c30-5097-4c01-b7ea-ea4a6cdef8b1","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"2763c4475a837b2573461bc68fa237e7","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/34cfc83a-c37e-4346-ac56-84a9457b318a"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/1def8c30-5097-4c01-b7ea-ea4a6cdef8b1"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":63,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:49Z"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","contextual_tuples":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F1def8c30-5097-4c01-b7ea-ea4a6cdef8b1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2751ed7f-23a2-4ecb-adb4-d1616c0350eb","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679689.3034158} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":63,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":4.70393,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/1def8c30-5097-4c01-b7ea-ea4a6cdef8b1","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/1def8c30-5097-4c01-b7ea-ea4a6cdef8b1","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":"c0afdfd0-2406-11ef-9563-e3996e819f8c"},"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/1def8c30-5097-4c01-b7ea-ea4a6cdef8b1 200 18ms","method":"GET","requestID":"c0afdfd0-2406-11ef-9563-e3996e819f8c","responseTime":18,"status":200,"url":"/peerconnections/1def8c30-5097-4c01-b7ea-ea4a6cdef8b1"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4OX0.81hCTKlLTzRE9Mw5Dzn-cs_MJgieujXu16gcYjRLbGI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"60aa0f6d9e523f85b7e33490f314f21d","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/f4b47768-f448-46ce-a155-4c3c7e40315e"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":64,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:49Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":64,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.211009,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/f4b47768-f448-46ce-a155-4c3c7e40315e","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/f4b47768-f448-46ce-a155-4c3c7e40315e","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679689,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4OX0.81hCTKlLTzRE9Mw5Dzn-cs_MJgieujXu16gcYjRLbGI"} 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":"60aa0f6d9e523f85b7e33490f314f21d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 321ms","method":"POST","requestID":"2763c4475a837b2573461bc68fa237e7","responseTime":321,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:14: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.326","http_referrer":"","http_user_agent":"node-fetch","requestID":"2763c4475a837b2573461bc68fa237e7"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/f4b47768-f448-46ce-a155-4c3c7e40315e"} gateway-1 | {"time_local":"06/Jun/2024:13:14:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/f4b47768-f448-46ce-a155-4c3c7e40315e HTTP/1.1","status": "200","body_bytes_sent":"884","request_time":"0.272","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"60aa0f6d9e523f85b7e33490f314f21d"} experiment-1 | {"level":"info","message":"GET /experiments/f4b47768-f448-46ce-a155-4c3c7e40315e 200 265ms","method":"GET","requestID":"60aa0f6d9e523f85b7e33490f314f21d","responseTime":265,"status":200,"url":"/experiments/f4b47768-f448-46ce-a155-4c3c7e40315e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4OX0.81hCTKlLTzRE9Mw5Dzn-cs_MJgieujXu16gcYjRLbGI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b2e4f40f4267382e6f547e6d4fa84329","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/f4b47768-f448-46ce-a155-4c3c7e40315e"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":65,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:49Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":65,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.780256,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:49Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/f4b47768-f448-46ce-a155-4c3c7e40315e","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/f4b47768-f448-46ce-a155-4c3c7e40315e","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679689,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4OX0.81hCTKlLTzRE9Mw5Dzn-cs_MJgieujXu16gcYjRLbGI"} 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":"b2e4f40f4267382e6f547e6d4fa84329"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4b47768-f448-46ce-a155-4c3c7e40315e"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":66,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:49Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":66,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.099405,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:49Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/1def8c30-5097-4c01-b7ea-ea4a6cdef8b1","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:http://localhost/peerconnections/1def8c30-5097-4c01-b7ea-ea4a6cdef8b1","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679689,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY4OX0.81hCTKlLTzRE9Mw5Dzn-cs_MJgieujXu16gcYjRLbGI"} 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":"c0e3c110-2406-11ef-9563-e3996e819f8c"},"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/1def8c30-5097-4c01-b7ea-ea4a6cdef8b1' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/1def8c30-5097-4c01-b7ea-ea4a6cdef8b1' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"1def8c30-5097-4c01-b7ea-ea4a6cdef8b1","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"3c370eb26c023ad8d1a67824ea840b3f","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F1def8c30-5097-4c01-b7ea-ea4a6cdef8b1': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F1def8c30-5097-4c01-b7ea-ea4a6cdef8b1","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"90ac6a3f-c90e-4867-84a0-9083b17d6a7e","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679689.658783} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9dd5f398-85d0-427c-aebb-ecbcc46f9042","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679689.6594458} 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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/34cfc83a-c37e-4346-ac56-84a9457b318a"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/1def8c30-5097-4c01-b7ea-ea4a6cdef8b1"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e6f31c850d4d93292d3062817f63ebff","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/34cfc83a-c37e-4346-ac56-84a9457b318a"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/1def8c30-5097-4c01-b7ea-ea4a6cdef8b1"}}},"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":"c0e3c110-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} device-1 | {"data":{"peerconnection":"1def8c30-5097-4c01-b7ea-ea4a6cdef8b1","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/1def8c30-5097-4c01-b7ea-ea4a6cdef8b1 204 302ms","method":"DELETE","requestID":"c0e3c110-2406-11ef-9563-e3996e819f8c","responseTime":302,"status":204,"url":"/peerconnections/1def8c30-5097-4c01-b7ea-ea4a6cdef8b1"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f4b47768-f448-46ce-a155-4c3c7e40315e"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff4b47768-f448-46ce-a155-4c3c7e40315e': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff4b47768-f448-46ce-a155-4c3c7e40315e","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"c9af069d-80cc-4b5a-8416-470b60bf2b01","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679689.9766943} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7a5a672c-a921-46d8-a38f-726dc5855f76","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679689.9772112} 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":"b2e4f40f4267382e6f547e6d4fa84329"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":18}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/f4b47768-f448-46ce-a155-4c3c7e40315e"} gateway-1 | {"time_local":"06/Jun/2024:13:14:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/f4b47768-f448-46ce-a155-4c3c7e40315e HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.695","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b2e4f40f4267382e6f547e6d4fa84329"} experiment-1 | {"level":"info","message":"DELETE /experiments/f4b47768-f448-46ce-a155-4c3c7e40315e 204 693ms","method":"DELETE","requestID":"b2e4f40f4267382e6f547e6d4fa84329","responseTime":693,"status":204,"url":"/experiments/f4b47768-f448-46ce-a155-4c3c7e40315e"} gateway-1 | {"time_local":"06/Jun/2024:13:14:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1757","request_time":"4.419","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"b6717c93195e89e3aae9981cd98a1bf8"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 651ms","method":"POST","requestID":"3c370eb26c023ad8d1a67824ea840b3f","responseTime":651,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:14:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.656","http_referrer":"","http_user_agent":"node-fetch","requestID":"3c370eb26c023ad8d1a67824ea840b3f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 652ms","method":"POST","requestID":"e6f31c850d4d93292d3062817f63ebff","responseTime":652,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:14:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.657","http_referrer":"","http_user_agent":"node-fetch","requestID":"e6f31c850d4d93292d3062817f63ebff"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5MH0.3R1SztIVsfnIircairsKnkpREmtPYXgX-kBapSAENC0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"056ca9fc9cd0c15084df40ce78afa972","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"06/Jun/2024:13:14:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1516","request_time":"2.941","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"2f2140fcfd1f648670ce6150c1ef0f49"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":67,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:50Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":67,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.891134,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:50Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679690,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5MH0.3R1SztIVsfnIircairsKnkpREmtPYXgX-kBapSAENC0"} 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":"056ca9fc9cd0c15084df40ce78afa972"},"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/34cfc83a-c37e-4346-ac56-84a9457b318a' 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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16bb2bce-3d5d-4ca6-81f8-578cc941131f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"13caff54-1b12-4ab3-9dc7-1bca0a4ed590","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679690.6024306} 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":"056ca9fc9cd0c15084df40ce78afa972"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/0a0a7fee-38c1-4a9e-86f7-2a5715c30c61' 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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"84e5431d-4a6e-4eb3-ae69-9a4333c0fb03","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679690.6107821} 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":"056ca9fc9cd0c15084df40ce78afa972"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16bb2bce-3d5d-4ca6-81f8-578cc941131f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"b176c540-469f-47a6-9820-58a472e2d3f1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679690.6226041} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e09dc67d-e732-4506-882d-3077dd0b7e75","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679690.6226544} 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":"056ca9fc9cd0c15084df40ce78afa972"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16bb2bce-3d5d-4ca6-81f8-578cc941131f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16bb2bce-3d5d-4ca6-81f8-578cc941131f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:50.622593690Z"}]},"request_id":"52580593-9ee8-4cc0-b55e-88b572ef06d5","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679690.6304018} 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":"056ca9fc9cd0c15084df40ce78afa972"},"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":"06/Jun/2024:13:14:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.323","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"056ca9fc9cd0c15084df40ce78afa972"} device-1 | {"level":"info","message":"POST /devices? 201 316ms","method":"POST","requestID":"056ca9fc9cd0c15084df40ce78afa972","responseTime":316,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5MH0.3R1SztIVsfnIircairsKnkpREmtPYXgX-kBapSAENC0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"87ea4c0c3b90debedec61b263829854b","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":68,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:50Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":68,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.671077,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:50Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679690,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5MH0.3R1SztIVsfnIircairsKnkpREmtPYXgX-kBapSAENC0"} 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":"87ea4c0c3b90debedec61b263829854b"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2688747b-6d8b-485b-aef5-a3c5b0264657","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"427c8417-8cd6-40db-99f4-184e3cc23bf1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679690.9324992} 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":"87ea4c0c3b90debedec61b263829854b"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"09f150c4-760b-4cf9-85ef-43b52db19bf1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679690.9408686} 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":"87ea4c0c3b90debedec61b263829854b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2688747b-6d8b-485b-aef5-a3c5b0264657","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"a0dab359-444d-4bda-85a9-031b22cc8cf9","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679690.955829} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0a206faa-bf9c-42ec-b65f-06a37535dc17","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679690.9561224} 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":"87ea4c0c3b90debedec61b263829854b"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2688747b-6d8b-485b-aef5-a3c5b0264657","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2688747b-6d8b-485b-aef5-a3c5b0264657","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:50.955808062Z"}]},"request_id":"a348abd4-bdf8-4264-bb06-f21c4967dffd","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679690.9636703} 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":"87ea4c0c3b90debedec61b263829854b"},"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":"06/Jun/2024:13:14:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.334","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"87ea4c0c3b90debedec61b263829854b"} device-1 | {"level":"info","message":"POST /devices? 201 328ms","method":"POST","requestID":"87ea4c0c3b90debedec61b263829854b","responseTime":328,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5MX0.ZhX2-QE7e-53yGYNNDrqPDl3PZEHwtfygeRdaz2UxkM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a2f1116d51f8b5e02290670cf44a1324","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5MX0.ZhX2-QE7e-53yGYNNDrqPDl3PZEHwtfygeRdaz2UxkM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"26521f8422339f5d05f7e0c0c8b70866","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":69,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:51Z"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":69,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.696832,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:51Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679691,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5MX0.ZhX2-QE7e-53yGYNNDrqPDl3PZEHwtfygeRdaz2UxkM"} 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":"a2f1116d51f8b5e02290670cf44a1324"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":70,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:51Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":70,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.799751,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:51Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/2688747b-6d8b-485b-aef5-a3c5b0264657","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/2688747b-6d8b-485b-aef5-a3c5b0264657","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679691,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5MX0.ZhX2-QE7e-53yGYNNDrqPDl3PZEHwtfygeRdaz2UxkM"} 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":"26521f8422339f5d05f7e0c0c8b70866"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16bb2bce-3d5d-4ca6-81f8-578cc941131f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16bb2bce-3d5d-4ca6-81f8-578cc941131f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:50.622593690Z"}]},"request_id":"00b2e4ea-b171-4df4-8649-5f20253d5f6b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679691.46154} 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":"a2f1116d51f8b5e02290670cf44a1324"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2688747b-6d8b-485b-aef5-a3c5b0264657","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2688747b-6d8b-485b-aef5-a3c5b0264657","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:50.955808062Z"}]},"request_id":"837bb5c6-0ecb-40c8-95f7-2c82302afb21","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679691.4647007} 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":"26521f8422339f5d05f7e0c0c8b70866"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1ddc5b3d-eeed-4f24-bed3-b7a014151b14","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679691.4664466} 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":"a2f1116d51f8b5e02290670cf44a1324"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9dd5a3ac-af86-4f99-b4ba-ddc32aff86e6","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679691.4706905} 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":"26521f8422339f5d05f7e0c0c8b70866"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16bb2bce-3d5d-4ca6-81f8-578cc941131f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16bb2bce-3d5d-4ca6-81f8-578cc941131f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:50.622593690Z"}]},"request_id":"24a79943-75c0-42cf-b1b2-eca9cc5d7801","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679691.4792125} 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":"a2f1116d51f8b5e02290670cf44a1324"},"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/16bb2bce-3d5d-4ca6-81f8-578cc941131f 200 32ms","method":"PATCH","requestID":"a2f1116d51f8b5e02290670cf44a1324","responseTime":32,"status":200,"url":"/devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f"} gateway-1 | {"time_local":"06/Jun/2024:13:14:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.036","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"a2f1116d51f8b5e02290670cf44a1324"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5MX0.ZhX2-QE7e-53yGYNNDrqPDl3PZEHwtfygeRdaz2UxkM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"9ca4c6a151846ef1083eeb4fd27b9d20","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket 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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2688747b-6d8b-485b-aef5-a3c5b0264657","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2688747b-6d8b-485b-aef5-a3c5b0264657","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:50.955808062Z"}]},"request_id":"da8387b1-f504-410f-ba2d-01bbf641c659","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679691.4892766} 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":"26521f8422339f5d05f7e0c0c8b70866"},"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:36466","level":"info","msg":"Received request.","req_id":71,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:51Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":71,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.749882,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:51Z"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679691,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5MX0.ZhX2-QE7e-53yGYNNDrqPDl3PZEHwtfygeRdaz2UxkM"} device-1 | {"level":"info","message":"PATCH /devices/2688747b-6d8b-485b-aef5-a3c5b0264657 200 39ms","method":"PATCH","requestID":"26521f8422339f5d05f7e0c0c8b70866","responseTime":39,"status":200,"url":"/devices/2688747b-6d8b-485b-aef5-a3c5b0264657"} gateway-1 | {"time_local":"06/Jun/2024:13:14:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/2688747b-6d8b-485b-aef5-a3c5b0264657 HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.043","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"26521f8422339f5d05f7e0c0c8b70866"} 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":"9ca4c6a151846ef1083eeb4fd27b9d20"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5MX0.ZhX2-QE7e-53yGYNNDrqPDl3PZEHwtfygeRdaz2UxkM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4f0fc5ce22abd1c4eb1b915b70936529","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":72,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:51Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":72,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.618291,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:51Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/2688747b-6d8b-485b-aef5-a3c5b0264657","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/2688747b-6d8b-485b-aef5-a3c5b0264657","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679691,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5MX0.ZhX2-QE7e-53yGYNNDrqPDl3PZEHwtfygeRdaz2UxkM"} 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":"4f0fc5ce22abd1c4eb1b915b70936529"},"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":"06/Jun/2024:13:14:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f/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":"9ca4c6a151846ef1083eeb4fd27b9d20"} device-1 | {"level":"info","message":"POST /devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f/websocket 200 18ms","method":"POST","requestID":"9ca4c6a151846ef1083eeb4fd27b9d20","responseTime":18,"status":200,"url":"/devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"06/Jun/2024:13:14:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/2688747b-6d8b-485b-aef5-a3c5b0264657/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.019","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"4f0fc5ce22abd1c4eb1b915b70936529"} device-1 | {"level":"info","message":"POST /devices/2688747b-6d8b-485b-aef5-a3c5b0264657/websocket 200 15ms","method":"POST","requestID":"4f0fc5ce22abd1c4eb1b915b70936529","responseTime":15,"status":200,"url":"/devices/2688747b-6d8b-485b-aef5-a3c5b0264657/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/2688747b-6d8b-485b-aef5-a3c5b0264657' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5MX0.ZhX2-QE7e-53yGYNNDrqPDl3PZEHwtfygeRdaz2UxkM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"c900fab2a02cac9f6df5d305d87bafce","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":73,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:51Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":73,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.43008,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679691,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5MX0.ZhX2-QE7e-53yGYNNDrqPDl3PZEHwtfygeRdaz2UxkM"} 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":"c900fab2a02cac9f6df5d305d87bafce"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16bb2bce-3d5d-4ca6-81f8-578cc941131f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16bb2bce-3d5d-4ca6-81f8-578cc941131f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:50.622593690Z"}]},"request_id":"474304e0-7d3e-42c6-9a06-c426732275e9","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679691.8154747} 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":"c900fab2a02cac9f6df5d305d87bafce"},"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":"06/Jun/2024:13:14:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c900fab2a02cac9f6df5d305d87bafce"} device-1 | {"level":"info","message":"GET /devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f? 200 19ms","method":"GET","requestID":"c900fab2a02cac9f6df5d305d87bafce","responseTime":19,"status":200,"url":"/devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5MX0.ZhX2-QE7e-53yGYNNDrqPDl3PZEHwtfygeRdaz2UxkM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"71f3343585f4dc8fc54cfbb66641b9bd","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":74,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:51Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":74,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.188423,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2688747b-6d8b-485b-aef5-a3c5b0264657","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/2688747b-6d8b-485b-aef5-a3c5b0264657","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679691,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5MX0.ZhX2-QE7e-53yGYNNDrqPDl3PZEHwtfygeRdaz2UxkM"} 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":"71f3343585f4dc8fc54cfbb66641b9bd"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2688747b-6d8b-485b-aef5-a3c5b0264657","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2688747b-6d8b-485b-aef5-a3c5b0264657","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:50.955808062Z"}]},"request_id":"ca4b7316-cadb-49b0-8335-19eba2b4a9f3","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679691.8419328} 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":"71f3343585f4dc8fc54cfbb66641b9bd"},"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":"06/Jun/2024:13:14:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2688747b-6d8b-485b-aef5-a3c5b0264657? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"71f3343585f4dc8fc54cfbb66641b9bd"} device-1 | {"level":"info","message":"GET /devices/2688747b-6d8b-485b-aef5-a3c5b0264657? 200 19ms","method":"GET","requestID":"71f3343585f4dc8fc54cfbb66641b9bd","responseTime":19,"status":200,"url":"/devices/2688747b-6d8b-485b-aef5-a3c5b0264657?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5MX0.ZhX2-QE7e-53yGYNNDrqPDl3PZEHwtfygeRdaz2UxkM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"34ebe32fd417bae2a8262c704bd0bb3d","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:36466","level":"info","msg":"Received request.","req_id":75,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:51Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":75,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.243122,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:51Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679691,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5MX0.ZhX2-QE7e-53yGYNNDrqPDl3PZEHwtfygeRdaz2UxkM"} 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":"34ebe32fd417bae2a8262c704bd0bb3d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5e795e46-eb09-4d6a-82a9-c941595c893f"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5e795e46-eb09-4d6a-82a9-c941595c893f"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5e795e46-eb09-4d6a-82a9-c941595c893f"},"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:36466","level":"info","msg":"Received request.","req_id":76,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:52Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":76,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.09262,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679691,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5MX0.ZhX2-QE7e-53yGYNNDrqPDl3PZEHwtfygeRdaz2UxkM"} 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":"c2611240-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:55902","level":"info","msg":"Received request.","req_id":77,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:52Z"} authorization-1 | {"client_addr":"127.0.0.1:55902","level":"info","msg":"Sent response.","req_id":77,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.130622,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2688747b-6d8b-485b-aef5-a3c5b0264657","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/2688747b-6d8b-485b-aef5-a3c5b0264657","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679691,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5MX0.ZhX2-QE7e-53yGYNNDrqPDl3PZEHwtfygeRdaz2UxkM"} 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":"c2616060-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16bb2bce-3d5d-4ca6-81f8-578cc941131f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16bb2bce-3d5d-4ca6-81f8-578cc941131f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:50.622593690Z"}]},"request_id":"08761b3f-067a-478a-a873-0b03ecb18664","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679692.1439052} 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":"c2611240-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2688747b-6d8b-485b-aef5-a3c5b0264657","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2688747b-6d8b-485b-aef5-a3c5b0264657","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:50.955808062Z"}]},"request_id":"536c60ce-fda8-4f46-ac58-70f121763f77","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679692.1457489} 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":"c2616060-2406-11ef-9563-e3996e819f8c"},"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/16bb2bce-3d5d-4ca6-81f8-578cc941131f? 200 19ms","method":"GET","requestID":"c2611240-2406-11ef-9563-e3996e819f8c","responseTime":19,"status":200,"url":"/devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/2688747b-6d8b-485b-aef5-a3c5b0264657? 200 18ms","method":"GET","requestID":"c2616060-2406-11ef-9563-e3996e819f8c","responseTime":18,"status":200,"url":"/devices/2688747b-6d8b-485b-aef5-a3c5b0264657?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5e795e46-eb09-4d6a-82a9-c941595c893f"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5e795e46-eb09-4d6a-82a9-c941595c893f"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5e795e46-eb09-4d6a-82a9-c941595c893f"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5e795e46-eb09-4d6a-82a9-c941595c893f"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5e795e46-eb09-4d6a-82a9-c941595c893f"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5e795e46-eb09-4d6a-82a9-c941595c893f"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5e795e46-eb09-4d6a-82a9-c941595c893f"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5e795e46-eb09-4d6a-82a9-c941595c893f"},"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/5e795e46-eb09-4d6a-82a9-c941595c893f"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":78,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:52Z"} authorization-1 | {"client_addr":"127.0.0.1:55902","level":"info","msg":"Received request.","req_id":79,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:52Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":78,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":3.043119,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679691,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5MX0.ZhX2-QE7e-53yGYNNDrqPDl3PZEHwtfygeRdaz2UxkM"} 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":"c29a98d0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:55902","level":"info","msg":"Sent response.","req_id":79,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.470181,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2688747b-6d8b-485b-aef5-a3c5b0264657","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/2688747b-6d8b-485b-aef5-a3c5b0264657","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679691,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5MX0.ZhX2-QE7e-53yGYNNDrqPDl3PZEHwtfygeRdaz2UxkM"} 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":"c29b0e00-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16bb2bce-3d5d-4ca6-81f8-578cc941131f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16bb2bce-3d5d-4ca6-81f8-578cc941131f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:50.622593690Z"}]},"request_id":"eb3bd46f-18ce-4d21-9957-087b617f492f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679692.5304573} 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":"c29a98d0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2688747b-6d8b-485b-aef5-a3c5b0264657","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2688747b-6d8b-485b-aef5-a3c5b0264657","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:50.955808062Z"}]},"request_id":"ef1dffa7-e987-4c8b-992b-ced9f399a884","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679692.5323458} 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":"c29b0e00-2406-11ef-9563-e3996e819f8c"},"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/16bb2bce-3d5d-4ca6-81f8-578cc941131f? 200 34ms","method":"GET","requestID":"c29a98d0-2406-11ef-9563-e3996e819f8c","responseTime":34,"status":200,"url":"/devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/2688747b-6d8b-485b-aef5-a3c5b0264657? 200 33ms","method":"GET","requestID":"c29b0e00-2406-11ef-9563-e3996e819f8c","responseTime":33,"status":200,"url":"/devices/2688747b-6d8b-485b-aef5-a3c5b0264657?"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5e795e46-eb09-4d6a-82a9-c941595c893f#owner@http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5e795e46-eb09-4d6a-82a9-c941595c893f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"e257b87c-53ee-4e17-b29f-9c1b6d7af7ff","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679692.5462043} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"265f2981-7d8e-4056-9ddf-f07c3a537d82","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679692.5487309} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 26ms","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":"34ebe32fd417bae2a8262c704bd0bb3d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":26}} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":80,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:52Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":80,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.267802,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:52Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c2a0da60-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/5e795e46-eb09-4d6a-82a9-c941595c893f","user":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f/signaling 200 17ms","method":"POST","requestID":"c2a0da60-2406-11ef-9563-e3996e819f8c","responseTime":17,"status":200,"url":"/devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f/signaling"} gateway-1 | {"time_local":"06/Jun/2024:13:14:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"815","request_time":"0.715","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"34ebe32fd417bae2a8262c704bd0bb3d"} experiment-1 | {"level":"info","message":"POST /experiments? 201 709ms","method":"POST","requestID":"34ebe32fd417bae2a8262c704bd0bb3d","responseTime":709,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5Mn0.b-IVsEHePsWPjM4MtXZa3z4wdXkfk903TVtLLjXLta4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"61858d7c3ea9492464d43de1d3e0fcbe","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":81,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:52Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":81,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.275694,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:52Z"} authorization-1 | {"client_addr":"127.0.0.1:55902","level":"info","msg":"Received request.","req_id":82,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:52Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/2688747b-6d8b-485b-aef5-a3c5b0264657","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2688747b-6d8b-485b-aef5-a3c5b0264657","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c2a45cd0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:55902","level":"info","msg":"Sent response.","req_id":82,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.064601,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679692,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5Mn0.b-IVsEHePsWPjM4MtXZa3z4wdXkfk903TVtLLjXLta4"} 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":"61858d7c3ea9492464d43de1d3e0fcbe"},"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/2688747b-6d8b-485b-aef5-a3c5b0264657/signaling 200 17ms","method":"POST","requestID":"c2a45cd0-2406-11ef-9563-e3996e819f8c","responseTime":18,"status":200,"url":"/devices/2688747b-6d8b-485b-aef5-a3c5b0264657/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5e795e46-eb09-4d6a-82a9-c941595c893f"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5e795e46-eb09-4d6a-82a9-c941595c893f"},"level":"info","message":"Building 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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16bb2bce-3d5d-4ca6-81f8-578cc941131f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16bb2bce-3d5d-4ca6-81f8-578cc941131f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:50.622593690Z"}]},"request_id":"22c8795b-7956-4b86-b088-4b0728eddf0e","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679692.592532} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"dd76cc33-e9c3-44cb-a1d8-873b207504fe"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"f05bacd2-8241-4a26-9adc-1baf34de4f47"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"5ed02023-6d87-4a76-a859-c1ad17d48c13"}]},"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/2688747b-6d8b-485b-aef5-a3c5b0264657"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} 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":"61858d7c3ea9492464d43de1d3e0fcbe"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"06/Jun/2024:13:14:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.032","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"61858d7c3ea9492464d43de1d3e0fcbe"} device-1 | {"level":"info","message":"GET /devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f? 200 25ms","method":"GET","requestID":"61858d7c3ea9492464d43de1d3e0fcbe","responseTime":25,"status":200,"url":"/devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f?"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":83,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:52Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":83,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.368801,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:52Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679691,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5MX0.ZhX2-QE7e-53yGYNNDrqPDl3PZEHwtfygeRdaz2UxkM"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","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":"c2a80650-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5Mn0.b-IVsEHePsWPjM4MtXZa3z4wdXkfk903TVtLLjXLta4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"749b94b48ec9fb0c9f778dcde62fa511","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":84,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:52Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":84,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.914488,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2688747b-6d8b-485b-aef5-a3c5b0264657","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/2688747b-6d8b-485b-aef5-a3c5b0264657","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679692,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5Mn0.b-IVsEHePsWPjM4MtXZa3z4wdXkfk903TVtLLjXLta4"} 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":"749b94b48ec9fb0c9f778dcde62fa511"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"97e2075e-159c-4524-8eca-645d785c79b7","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679692.6244717} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c898c674-c947-44ab-bbe0-f684c1191eb2","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679692.624818} 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":"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":"c2a80650-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2688747b-6d8b-485b-aef5-a3c5b0264657","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2688747b-6d8b-485b-aef5-a3c5b0264657","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:50.955808062Z"}]},"request_id":"33797883-4de2-479e-8578-0691ce0624dd","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679692.6263752} 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":"749b94b48ec9fb0c9f778dcde62fa511"},"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":"06/Jun/2024:13:14:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2688747b-6d8b-485b-aef5-a3c5b0264657? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.264","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"749b94b48ec9fb0c9f778dcde62fa511"} device-1 | {"level":"info","message":"GET /devices/2688747b-6d8b-485b-aef5-a3c5b0264657? 200 257ms","method":"GET","requestID":"749b94b48ec9fb0c9f778dcde62fa511","responseTime":257,"status":200,"url":"/devices/2688747b-6d8b-485b-aef5-a3c5b0264657?"} 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/7c80a571-d5ea-469f-acf9-7bbdf37f5721'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/7c80a571-d5ea-469f-acf9-7bbdf37f5721'"} 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 276ms","method":"POST","requestID":"c2a80650-2406-11ef-9563-e3996e819f8c","responseTime":276,"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":"7c80a571-d5ea-469f-acf9-7bbdf37f5721","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5e795e46-eb09-4d6a-82a9-c941595c893f"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"data":{"peerconnection":"7c80a571-d5ea-469f-acf9-7bbdf37f5721","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/7c80a571-d5ea-469f-acf9-7bbdf37f5721' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"7c80a571-d5ea-469f-acf9-7bbdf37f5721","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"092d1bd84b4aa136c8df11acbadacc05","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/2688747b-6d8b-485b-aef5-a3c5b0264657"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/7c80a571-d5ea-469f-acf9-7bbdf37f5721"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"7c80a571-d5ea-469f-acf9-7bbdf37f5721","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 9ms","method":"POST","requestID":"092d1bd84b4aa136c8df11acbadacc05","responseTime":9,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:14:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch","requestID":"092d1bd84b4aa136c8df11acbadacc05"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5M30.-rb4aUnR1ISIMCytaBaKR7YDSqDc_Lss6-0ertr40o4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"a6a5a5dc843a7dc2e6d146993e505b22","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/5e795e46-eb09-4d6a-82a9-c941595c893f"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":85,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:53Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":85,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.265445,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:53Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/5e795e46-eb09-4d6a-82a9-c941595c893f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/5e795e46-eb09-4d6a-82a9-c941595c893f","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679693,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5M30.-rb4aUnR1ISIMCytaBaKR7YDSqDc_Lss6-0ertr40o4"} 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":"a6a5a5dc843a7dc2e6d146993e505b22"},"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/5e795e46-eb09-4d6a-82a9-c941595c893f"} gateway-1 | {"time_local":"06/Jun/2024:13:14:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/5e795e46-eb09-4d6a-82a9-c941595c893f HTTP/1.1","status": "200","body_bytes_sent":"886","request_time":"0.027","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a6a5a5dc843a7dc2e6d146993e505b22"} experiment-1 | {"level":"info","message":"GET /experiments/5e795e46-eb09-4d6a-82a9-c941595c893f 200 20ms","method":"GET","requestID":"a6a5a5dc843a7dc2e6d146993e505b22","responseTime":20,"status":200,"url":"/experiments/5e795e46-eb09-4d6a-82a9-c941595c893f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5M30.-rb4aUnR1ISIMCytaBaKR7YDSqDc_Lss6-0ertr40o4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"fbd136ab0b5cb6df28fe58fb6547b8e2","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/5e795e46-eb09-4d6a-82a9-c941595c893f"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":86,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:53Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":86,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.237375,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:53Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/5e795e46-eb09-4d6a-82a9-c941595c893f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/5e795e46-eb09-4d6a-82a9-c941595c893f","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679693,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5M30.-rb4aUnR1ISIMCytaBaKR7YDSqDc_Lss6-0ertr40o4"} 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":"fbd136ab0b5cb6df28fe58fb6547b8e2"},"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/5e795e46-eb09-4d6a-82a9-c941595c893f"} gateway-1 | {"time_local":"06/Jun/2024:13:14:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/5e795e46-eb09-4d6a-82a9-c941595c893f HTTP/1.1","status": "200","body_bytes_sent":"886","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fbd136ab0b5cb6df28fe58fb6547b8e2"} experiment-1 | {"level":"info","message":"GET /experiments/5e795e46-eb09-4d6a-82a9-c941595c893f 200 18ms","method":"GET","requestID":"fbd136ab0b5cb6df28fe58fb6547b8e2","responseTime":18,"status":200,"url":"/experiments/5e795e46-eb09-4d6a-82a9-c941595c893f"} device-1 | {"data":{"peerconnection":"7c80a571-d5ea-469f-acf9-7bbdf37f5721","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/7c80a571-d5ea-469f-acf9-7bbdf37f5721' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"7c80a571-d5ea-469f-acf9-7bbdf37f5721","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"fba2d874656928a19f0e542fdfb1eeeb","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/2688747b-6d8b-485b-aef5-a3c5b0264657"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/7c80a571-d5ea-469f-acf9-7bbdf37f5721"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":87,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:53Z"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","contextual_tuples":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F7c80a571-d5ea-469f-acf9-7bbdf37f5721","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7b95a159-03a0-44ef-95da-be48a1013bde","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679693.2563815} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":87,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.851195,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:53Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/7c80a571-d5ea-469f-acf9-7bbdf37f5721","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/7c80a571-d5ea-469f-acf9-7bbdf37f5721","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 8ms","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":"c30b8310-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/7c80a571-d5ea-469f-acf9-7bbdf37f5721 200 14ms","method":"GET","requestID":"c30b8310-2406-11ef-9563-e3996e819f8c","responseTime":14,"status":200,"url":"/peerconnections/7c80a571-d5ea-469f-acf9-7bbdf37f5721"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 49ms","method":"POST","requestID":"fba2d874656928a19f0e542fdfb1eeeb","responseTime":49,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:14:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.054","http_referrer":"","http_user_agent":"node-fetch","requestID":"fba2d874656928a19f0e542fdfb1eeeb"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5M30.-rb4aUnR1ISIMCytaBaKR7YDSqDc_Lss6-0ertr40o4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"aa88ec8cf1c49c097b216c33f61ff76e","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/5e795e46-eb09-4d6a-82a9-c941595c893f"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":88,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:53Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":88,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.916889,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:53Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/5e795e46-eb09-4d6a-82a9-c941595c893f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/5e795e46-eb09-4d6a-82a9-c941595c893f","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679693,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5M30.-rb4aUnR1ISIMCytaBaKR7YDSqDc_Lss6-0ertr40o4"} 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":"aa88ec8cf1c49c097b216c33f61ff76e"},"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/5e795e46-eb09-4d6a-82a9-c941595c893f"} gateway-1 | {"time_local":"06/Jun/2024:13:14:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/5e795e46-eb09-4d6a-82a9-c941595c893f HTTP/1.1","status": "200","body_bytes_sent":"888","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"aa88ec8cf1c49c097b216c33f61ff76e"} experiment-1 | {"level":"info","message":"GET /experiments/5e795e46-eb09-4d6a-82a9-c941595c893f 200 13ms","method":"GET","requestID":"aa88ec8cf1c49c097b216c33f61ff76e","responseTime":13,"status":200,"url":"/experiments/5e795e46-eb09-4d6a-82a9-c941595c893f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5M30.-rb4aUnR1ISIMCytaBaKR7YDSqDc_Lss6-0ertr40o4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f43ecc93095b9b1fd0b6d970005dbace","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/5e795e46-eb09-4d6a-82a9-c941595c893f"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":89,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:53Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":89,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.219509,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:53Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/5e795e46-eb09-4d6a-82a9-c941595c893f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/5e795e46-eb09-4d6a-82a9-c941595c893f","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679693,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5M30.-rb4aUnR1ISIMCytaBaKR7YDSqDc_Lss6-0ertr40o4"} 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":"f43ecc93095b9b1fd0b6d970005dbace"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5e795e46-eb09-4d6a-82a9-c941595c893f"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":90,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:53Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":90,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":2.039663,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:53Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/7c80a571-d5ea-469f-acf9-7bbdf37f5721","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:http://localhost/peerconnections/7c80a571-d5ea-469f-acf9-7bbdf37f5721","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679693,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5M30.-rb4aUnR1ISIMCytaBaKR7YDSqDc_Lss6-0ertr40o4"} 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":"c31c9a10-2406-11ef-9563-e3996e819f8c"},"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/7c80a571-d5ea-469f-acf9-7bbdf37f5721' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/7c80a571-d5ea-469f-acf9-7bbdf37f5721' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"7c80a571-d5ea-469f-acf9-7bbdf37f5721","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"37ac3fc636d89a67b09e3d26a7ae107f","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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/2688747b-6d8b-485b-aef5-a3c5b0264657"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/7c80a571-d5ea-469f-acf9-7bbdf37f5721"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"5573d348b4e949d08fcf4f213df7db7b","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/2688747b-6d8b-485b-aef5-a3c5b0264657"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/7c80a571-d5ea-469f-acf9-7bbdf37f5721"}}},"level":"info","message":"received a callback"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F7c80a571-d5ea-469f-acf9-7bbdf37f5721': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F7c80a571-d5ea-469f-acf9-7bbdf37f5721","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"13263266-4dbd-4428-b4fb-a4884d0d52d2","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679693.3945744} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b6962fc8-f919-482e-b18d-a96740c17d56","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679693.3951066} 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":"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":"c31c9a10-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":17}} device-1 | {"data":{"peerconnection":"7c80a571-d5ea-469f-acf9-7bbdf37f5721","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/7c80a571-d5ea-469f-acf9-7bbdf37f5721 204 265ms","method":"DELETE","requestID":"c31c9a10-2406-11ef-9563-e3996e819f8c","responseTime":265,"status":204,"url":"/peerconnections/7c80a571-d5ea-469f-acf9-7bbdf37f5721"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5e795e46-eb09-4d6a-82a9-c941595c893f"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5e795e46-eb09-4d6a-82a9-c941595c893f': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5e795e46-eb09-4d6a-82a9-c941595c893f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"d8ae2ed2-2d05-4b3e-9809-59b796371d44","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679693.6654253} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7a323642-1e96-4c26-83e6-3a6d916c5973","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679693.6659746} 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":"f43ecc93095b9b1fd0b6d970005dbace"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":17}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/5e795e46-eb09-4d6a-82a9-c941595c893f"} gateway-1 | {"time_local":"06/Jun/2024:13:14:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/5e795e46-eb09-4d6a-82a9-c941595c893f HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.664","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f43ecc93095b9b1fd0b6d970005dbace"} gateway-1 | {"time_local":"06/Jun/2024:13:14:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1521","request_time":"2.489","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"f350472b95609175600514830418a899"} gateway-1 | {"time_local":"06/Jun/2024:13:14:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1521","request_time":"2.497","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"f8832c2c76055c91c150698be6ce541f"} experiment-1 | {"level":"info","message":"DELETE /experiments/5e795e46-eb09-4d6a-82a9-c941595c893f 204 661ms","method":"DELETE","requestID":"f43ecc93095b9b1fd0b6d970005dbace","responseTime":661,"status":204,"url":"/experiments/5e795e46-eb09-4d6a-82a9-c941595c893f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 617ms","method":"POST","requestID":"37ac3fc636d89a67b09e3d26a7ae107f","responseTime":617,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:14:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.623","http_referrer":"","http_user_agent":"node-fetch","requestID":"37ac3fc636d89a67b09e3d26a7ae107f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 616ms","method":"POST","requestID":"5573d348b4e949d08fcf4f213df7db7b","responseTime":616,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:14:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.624","http_referrer":"","http_user_agent":"node-fetch","requestID":"5573d348b4e949d08fcf4f213df7db7b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5NH0.lJbDwhBC3Ab7TciDuP9tKn2cQbRNHKcVUY2_2xtBUd8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"f598c89f5ad77a544eb77fd5a7aa233f","responseTime":5,"status":200,"url":"/auth"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/16bb2bce-3d5d-4ca6-81f8-578cc941131f' closed"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":91,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:54Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":91,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.273649,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:54Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679694,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5NH0.lJbDwhBC3Ab7TciDuP9tKn2cQbRNHKcVUY2_2xtBUd8"} 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":"f598c89f5ad77a544eb77fd5a7aa233f"},"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/2688747b-6d8b-485b-aef5-a3c5b0264657' 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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc52ef258-ede7-437d-818c-1119163c3d4f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"dc0b75d3-4c40-4619-906d-4bb024ff4125","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679694.320979} 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":"f598c89f5ad77a544eb77fd5a7aa233f"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"711a250b-aba2-4cd7-9ef3-bdcbc1a9bca6","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679694.3290522} 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":"f598c89f5ad77a544eb77fd5a7aa233f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc52ef258-ede7-437d-818c-1119163c3d4f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"d6414d18-b547-4e43-9bb4-2b2ee087d8d6","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679694.3420584} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"abcf7c27-557e-4ec5-a84f-a9d4463d2c6e","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679694.3422742} 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":"f598c89f5ad77a544eb77fd5a7aa233f"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc52ef258-ede7-437d-818c-1119163c3d4f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc52ef258-ede7-437d-818c-1119163c3d4f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:54.342020490Z"}]},"request_id":"6b11e7c3-dfa4-4a69-bd60-6aacaae66ab7","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679694.349722} 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":"f598c89f5ad77a544eb77fd5a7aa233f"},"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":"06/Jun/2024:13:14:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.347","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f598c89f5ad77a544eb77fd5a7aa233f"} device-1 | {"level":"info","message":"POST /devices? 201 337ms","method":"POST","requestID":"f598c89f5ad77a544eb77fd5a7aa233f","responseTime":337,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5NH0.lJbDwhBC3Ab7TciDuP9tKn2cQbRNHKcVUY2_2xtBUd8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"f00a1de9ffbfa855b59d67f29bd3ab0a","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":92,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:54Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":92,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.258033,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:54Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679694,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5NH0.lJbDwhBC3Ab7TciDuP9tKn2cQbRNHKcVUY2_2xtBUd8"} 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":"f00a1de9ffbfa855b59d67f29bd3ab0a"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe6f7eeb-f3f8-4b67-be26-99b4ac140292","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e2361f76-9568-4750-af39-0f05ee94fc88","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679694.3853889} 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":"f00a1de9ffbfa855b59d67f29bd3ab0a"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0f8413db-4c49-4a16-8081-04073f44a26f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679694.3931074} 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":"f00a1de9ffbfa855b59d67f29bd3ab0a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe6f7eeb-f3f8-4b67-be26-99b4ac140292","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"9073e89c-39e9-48a5-9d9e-16de04b38163","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679694.4060454} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b3b407fe-4526-4b74-ae9a-662405c8e861","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679694.406755} 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":"f00a1de9ffbfa855b59d67f29bd3ab0a"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe6f7eeb-f3f8-4b67-be26-99b4ac140292","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbe6f7eeb-f3f8-4b67-be26-99b4ac140292","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:54.406025479Z"}]},"request_id":"ce8906b4-d08c-4269-8d97-177932e7da23","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679694.4143999} 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":"f00a1de9ffbfa855b59d67f29bd3ab0a"},"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":"06/Jun/2024:13:14:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.062","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f00a1de9ffbfa855b59d67f29bd3ab0a"} device-1 | {"level":"info","message":"POST /devices? 201 55ms","method":"POST","requestID":"f00a1de9ffbfa855b59d67f29bd3ab0a","responseTime":55,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5NH0.lJbDwhBC3Ab7TciDuP9tKn2cQbRNHKcVUY2_2xtBUd8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5bf7e628030cd3f2a12bca6829bf872e","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":93,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:54Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":93,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.120725,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:54Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679694,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5NH0.lJbDwhBC3Ab7TciDuP9tKn2cQbRNHKcVUY2_2xtBUd8"} 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":"5bf7e628030cd3f2a12bca6829bf872e"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F334b8b76-8c69-4a8f-a388-3337207953a6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d5aabc76-3ab6-4615-a323-2da2dd34ad7f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679696.9824972} 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":"5bf7e628030cd3f2a12bca6829bf872e"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5075ebae-7678-4507-ad0c-da324bdfef8f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679696.9906301} 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":"5bf7e628030cd3f2a12bca6829bf872e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F334b8b76-8c69-4a8f-a388-3337207953a6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"e8a1cc8c-bf96-4613-abe4-f5e58b7b4020","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679697.8565035} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"47485bc3-b8f3-4e60-a582-0b0483202de4","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679697.8569725} authorization-1 | {"level":"info","message":"POST /relations/update 200 870ms","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":"5bf7e628030cd3f2a12bca6829bf872e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":870}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F334b8b76-8c69-4a8f-a388-3337207953a6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F334b8b76-8c69-4a8f-a388-3337207953a6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:57.856481787Z"}]},"request_id":"8771fed4-c5fb-449f-90a8-4ae9f93e5232","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679697.8648458} 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":"5bf7e628030cd3f2a12bca6829bf872e"},"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":"06/Jun/2024:13:14:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"3.448","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5bf7e628030cd3f2a12bca6829bf872e"} device-1 | {"level":"info","message":"POST /devices? 201 3442ms","method":"POST","requestID":"5bf7e628030cd3f2a12bca6829bf872e","responseTime":3442,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5N30.Fpb66RS_tIvvwHsS-pQlbxQPrwulQU1t9gOHY-M7K2U","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"7775950d2934b8b43ac9db67219ab8c3","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":94,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:57Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":94,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.373706,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:57Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679697,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5N30.Fpb66RS_tIvvwHsS-pQlbxQPrwulQU1t9gOHY-M7K2U"} 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":"7775950d2934b8b43ac9db67219ab8c3"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F57fa9549-92d7-4b87-bd46-ebf008d59e37","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"ffe6224a-6f1e-4eec-b278-0a42c4600480","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679698.4963672} 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":"7775950d2934b8b43ac9db67219ab8c3"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"75fc9a77-6d34-48f9-bbe5-6078cf0cab5b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679698.5054476} 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":"7775950d2934b8b43ac9db67219ab8c3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F57fa9549-92d7-4b87-bd46-ebf008d59e37","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"adcf22bd-17e0-4fda-a840-3ec1ff5fc4cc","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679699.8058734} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d36a1986-2cb9-4bb4-b853-b41edd4b812c","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679699.8060575} authorization-1 | {"level":"info","message":"POST /relations/update 200 1304ms","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":"7775950d2934b8b43ac9db67219ab8c3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":1304}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F57fa9549-92d7-4b87-bd46-ebf008d59e37","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F57fa9549-92d7-4b87-bd46-ebf008d59e37","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:14:59.805841782Z"}]},"request_id":"ded09d83-530f-472c-8c5e-317d9cda28c6","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679699.8139546} 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":"7775950d2934b8b43ac9db67219ab8c3"},"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":"06/Jun/2024:13:14:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"1.947","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7775950d2934b8b43ac9db67219ab8c3"} device-1 | {"level":"info","message":"POST /devices? 201 1939ms","method":"POST","requestID":"7775950d2934b8b43ac9db67219ab8c3","responseTime":1939,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5OX0.sGbAi28ZzZoODJ5bgEEVxZW_wUyOcPFZWglcsiKJeCU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e8bc50b20c691adbf9b39beeb7b54569","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":95,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:14:59Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":95,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.269825,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:14:59Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679699,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTY5OX0.sGbAi28ZzZoODJ5bgEEVxZW_wUyOcPFZWglcsiKJeCU"} 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":"e8bc50b20c691adbf9b39beeb7b54569"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a82b1b0-5ca4-497e-a296-ea562ceadafa","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"c92da994-0f71-4c15-8eb4-3c6b280e3252","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679700.6172335} 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":"e8bc50b20c691adbf9b39beeb7b54569"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5deb4f98-e891-4f99-a466-5810d32d6d75","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679700.6249595} 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":"e8bc50b20c691adbf9b39beeb7b54569"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a82b1b0-5ca4-497e-a296-ea562ceadafa","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"3c29b259-46c0-4457-935d-e8f7018ed31f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679700.6648989} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1fd3ad16-7a6e-402d-a545-1ad4fd54840a","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679700.665305} authorization-1 | {"level":"info","message":"POST /relations/update 200 43ms","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":"e8bc50b20c691adbf9b39beeb7b54569"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":43}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a82b1b0-5ca4-497e-a296-ea562ceadafa","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a82b1b0-5ca4-497e-a296-ea562ceadafa","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:00.664877191Z"}]},"request_id":"bf85b805-65d0-49f0-9f4a-7ec0cef536f4","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679700.6724224} 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":"e8bc50b20c691adbf9b39beeb7b54569"},"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":"06/Jun/2024:13:15:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.856","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e8bc50b20c691adbf9b39beeb7b54569"} device-1 | {"level":"info","message":"POST /devices? 201 850ms","method":"POST","requestID":"e8bc50b20c691adbf9b39beeb7b54569","responseTime":850,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMH0.7weFsMVntax0Tiz4I4K1j2OloI5DfF80_jzH7-S7YA4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"844a13bbd8b286c37cee78b9885d330d","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":96,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:00Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":96,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.40046,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:00Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679700,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMH0.7weFsMVntax0Tiz4I4K1j2OloI5DfF80_jzH7-S7YA4"} 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":"844a13bbd8b286c37cee78b9885d330d"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b2f4ad4-8b63-44de-b778-899101c1c9d0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"5aadf6d4-d488-4dc7-9936-af5400b673ea","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679700.825418} 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":"844a13bbd8b286c37cee78b9885d330d"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"09e730c6-cb63-47b7-9455-4d44387a2410","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679700.8350494} 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":"844a13bbd8b286c37cee78b9885d330d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b2f4ad4-8b63-44de-b778-899101c1c9d0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"8de15d3f-b68a-4f6a-b615-952927c74f79","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.0060773} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"473d54b0-ca75-4872-ae9b-1601a0515291","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.0068207} authorization-1 | {"level":"info","message":"POST /relations/update 200 175ms","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":"844a13bbd8b286c37cee78b9885d330d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":175}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b2f4ad4-8b63-44de-b778-899101c1c9d0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b2f4ad4-8b63-44de-b778-899101c1c9d0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:01.006053376Z"}]},"request_id":"2cb4dd76-24e4-4062-9f86-daecdb5ef188","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.0145173} 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":"844a13bbd8b286c37cee78b9885d330d"},"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 332ms","method":"POST","requestID":"844a13bbd8b286c37cee78b9885d330d","responseTime":332,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"06/Jun/2024:13:15:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.339","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"844a13bbd8b286c37cee78b9885d330d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"3691ffdf824be28fa4fa88356cc6ceb7","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":97,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":97,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.652763,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679701,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4"} 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":"3691ffdf824be28fa4fa88356cc6ceb7"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1739e7cc-6bc9-4edf-9f2a-f915611b0b2f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"1438a496-9847-4efb-8290-27a8d7a44e83","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.1347044} 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":"3691ffdf824be28fa4fa88356cc6ceb7"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8db31746-a7da-4df7-a131-38822db3991d","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.1428652} 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":"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":"3691ffdf824be28fa4fa88356cc6ceb7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1739e7cc-6bc9-4edf-9f2a-f915611b0b2f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"6b7e362a-2680-4f4b-9584-28b6c7518d45","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.158073} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"785aa94c-737b-4659-95da-4f6c564c5744","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.1583202} 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":"3691ffdf824be28fa4fa88356cc6ceb7"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1739e7cc-6bc9-4edf-9f2a-f915611b0b2f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1739e7cc-6bc9-4edf-9f2a-f915611b0b2f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:01.158058098Z"}]},"request_id":"88feb6c9-311f-40c5-b3ec-a6d01df84590","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.1657343} 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":"3691ffdf824be28fa4fa88356cc6ceb7"},"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 141ms","method":"POST","requestID":"3691ffdf824be28fa4fa88356cc6ceb7","responseTime":141,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"06/Jun/2024:13:15:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.149","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3691ffdf824be28fa4fa88356cc6ceb7"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"074f30148ce5a93c5b9a867898e9cf39","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":98,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":98,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.260903,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679701,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4"} 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":"074f30148ce5a93c5b9a867898e9cf39"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F543df4c6-62cc-4a40-b31e-7e72fd3d0883","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"5889e190-64e7-4522-9105-6c2439fbec3d","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.2040923} 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":"074f30148ce5a93c5b9a867898e9cf39"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"31378959-a047-480b-ae3b-1a52d179b837","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.2119563} 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":"074f30148ce5a93c5b9a867898e9cf39"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F543df4c6-62cc-4a40-b31e-7e72fd3d0883","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"0230f8f8-c205-4aeb-9149-1ec9ceb198d3","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.2317579} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"34f89951-f06c-40c2-bac7-a7ac07880973","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.2320352} 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":"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":"074f30148ce5a93c5b9a867898e9cf39"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":24}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F543df4c6-62cc-4a40-b31e-7e72fd3d0883","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F543df4c6-62cc-4a40-b31e-7e72fd3d0883","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:01.231733776Z"}]},"request_id":"a62bea1e-117f-411a-9e0c-931cbd5a978a","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.239151} 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":"074f30148ce5a93c5b9a867898e9cf39"},"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":"06/Jun/2024:13:15:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.071","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"074f30148ce5a93c5b9a867898e9cf39"} device-1 | {"level":"info","message":"POST /devices? 201 65ms","method":"POST","requestID":"074f30148ce5a93c5b9a867898e9cf39","responseTime":65,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a8284bf7baea5ec4f89b65b6170839f2","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":99,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":99,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.210402,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679701,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4"} 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":"a8284bf7baea5ec4f89b65b6170839f2"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0991bd5e-eeea-43d0-bb28-200971a73bd4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"97968f06-2c25-4b62-944b-db6beddc9687","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.2752526} 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":"a8284bf7baea5ec4f89b65b6170839f2"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f565f0c1-90dc-4f9d-a1ea-79a33b4f29aa","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.2834818} 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":"a8284bf7baea5ec4f89b65b6170839f2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0991bd5e-eeea-43d0-bb28-200971a73bd4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"dc64409b-7aa4-487a-a957-ce3cfca85a06","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.296227} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dc376572-f2c7-448d-b740-1170ea01c0e2","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.2967558} 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":"a8284bf7baea5ec4f89b65b6170839f2"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0991bd5e-eeea-43d0-bb28-200971a73bd4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0991bd5e-eeea-43d0-bb28-200971a73bd4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:01.296203304Z"}]},"request_id":"8c48efee-c8da-465c-af1f-f05b729f54c7","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.3040497} 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":"a8284bf7baea5ec4f89b65b6170839f2"},"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 56ms","method":"POST","requestID":"a8284bf7baea5ec4f89b65b6170839f2","responseTime":56,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"06/Jun/2024:13:15:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.062","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a8284bf7baea5ec4f89b65b6170839f2"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"541a781b244af27123851ae60590b16e","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":100,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":100,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.194777,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679701,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4"} 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":"541a781b244af27123851ae60590b16e"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3d867af3-8bb7-4d41-bce5-45c8ad48b360","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"403f56bf-8c60-4fcb-9e7f-b134f2bf40eb","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.3381937} 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":"541a781b244af27123851ae60590b16e"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"96d6b61f-e85a-46dd-a3a8-cf82beebf39e","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.3480458} 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":"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":"541a781b244af27123851ae60590b16e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3d867af3-8bb7-4d41-bce5-45c8ad48b360","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"712b9250-d67b-4b7d-9eb2-6631af04149a","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.3624043} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c8b4e84e-e390-4d1e-9c33-8234f118e8d6","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.3624742} 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":"541a781b244af27123851ae60590b16e"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3d867af3-8bb7-4d41-bce5-45c8ad48b360","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3d867af3-8bb7-4d41-bce5-45c8ad48b360","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:01.362379748Z"}]},"request_id":"463c0953-852d-45b3-a74c-c4f15d649646","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.3699262} 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":"541a781b244af27123851ae60590b16e"},"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":"06/Jun/2024:13:15:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"278","request_time":"0.064","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"541a781b244af27123851ae60590b16e"} device-1 | {"level":"info","message":"POST /devices? 201 57ms","method":"POST","requestID":"541a781b244af27123851ae60590b16e","responseTime":57,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"9e8c95f960ceae90d5be657f6a0a0318","responseTime":7,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":101,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":101,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.375395,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679701,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4"} 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":"9e8c95f960ceae90d5be657f6a0a0318"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2bf30e4-e829-40dc-a0b6-056e54b84c8b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"b528baed-2534-4422-9102-5ade7373f4e1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.4121916} 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":"9e8c95f960ceae90d5be657f6a0a0318"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6f9f15e6-9a00-4b71-bcb5-d341587a9ffa","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.4207947} 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":"9e8c95f960ceae90d5be657f6a0a0318"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2bf30e4-e829-40dc-a0b6-056e54b84c8b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"79f18b7a-809d-4a53-a500-03fcf09a02c9","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.4341655} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"091c1e4d-3efc-4cbb-88de-36add7887e0d","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.434592} 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":"9e8c95f960ceae90d5be657f6a0a0318"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2bf30e4-e829-40dc-a0b6-056e54b84c8b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2bf30e4-e829-40dc-a0b6-056e54b84c8b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:01.434142399Z"}]},"request_id":"acd9fe4b-7c0e-417a-8a45-22c57f7200c3","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.440561} 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":"9e8c95f960ceae90d5be657f6a0a0318"},"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":"06/Jun/2024:13:15:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"1069","request_time":"0.069","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9e8c95f960ceae90d5be657f6a0a0318"} device-1 | {"level":"info","message":"POST /devices? 201 60ms","method":"POST","requestID":"9e8c95f960ceae90d5be657f6a0a0318","responseTime":60,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d951180d075862faa842631627e1de5e","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":102,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":102,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.120353,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679701,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4"} 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":"d951180d075862faa842631627e1de5e"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F93526e1e-7ec3-4cd1-80b1-b947cf1c9e57","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"caf71e90-f354-4b14-a162-f9703fc4dbc7","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.4777813} 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":"d951180d075862faa842631627e1de5e"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a5625ba7-db06-4048-b72b-5948190065f0","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.486354} 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":"d951180d075862faa842631627e1de5e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F93526e1e-7ec3-4cd1-80b1-b947cf1c9e57","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"c32f065d-2649-400a-a301-901944110f2f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.5005703} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"377c30ca-50aa-4fef-83db-d5127a99ba04","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.500947} 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":"d951180d075862faa842631627e1de5e"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F93526e1e-7ec3-4cd1-80b1-b947cf1c9e57","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F93526e1e-7ec3-4cd1-80b1-b947cf1c9e57","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:01.500546811Z"}]},"request_id":"6cbac35a-8ce5-40c8-a24b-484b7d39853e","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.5078006} 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":"d951180d075862faa842631627e1de5e"},"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":"06/Jun/2024:13:15:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"1347","request_time":"0.062","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d951180d075862faa842631627e1de5e"} device-1 | {"level":"info","message":"POST /devices? 201 57ms","method":"POST","requestID":"d951180d075862faa842631627e1de5e","responseTime":57,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"419b0bdb3cba6bda361c01f6064e198c","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":103,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":103,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.383906,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679701,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4"} 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":"419b0bdb3cba6bda361c01f6064e198c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff67cc00a-762a-42c0-bfda-1cb5ec35755f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"0e9a7e5a-d0be-466f-b198-4af06e5a7247","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.5495725} 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":"419b0bdb3cba6bda361c01f6064e198c"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fba236b4-8797-46cd-876e-d7ce8c801fa7","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.5560024} 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":"419b0bdb3cba6bda361c01f6064e198c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff67cc00a-762a-42c0-bfda-1cb5ec35755f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"c278ae19-4040-45a9-b8c1-fae9518f3a7d","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.5686743} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"59c14124-fabc-437e-ad2d-dfa72de2b748","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.5690067} 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":"419b0bdb3cba6bda361c01f6064e198c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff67cc00a-762a-42c0-bfda-1cb5ec35755f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff67cc00a-762a-42c0-bfda-1cb5ec35755f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:01.568654474Z"}]},"request_id":"f937b45a-14c6-440b-83eb-b7de02b6e3ed","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.5748994} 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":"419b0bdb3cba6bda361c01f6064e198c"},"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":"06/Jun/2024:13:15:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"1070","request_time":"0.064","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"419b0bdb3cba6bda361c01f6064e198c"} device-1 | {"level":"info","message":"POST /devices? 201 57ms","method":"POST","requestID":"419b0bdb3cba6bda361c01f6064e198c","responseTime":57,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"81e0ed185c05030b4fac761a4a508454","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":104,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":104,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.785547,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2bf30e4-e829-40dc-a0b6-056e54b84c8b","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/b2bf30e4-e829-40dc-a0b6-056e54b84c8b","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679701,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4"} 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":"81e0ed185c05030b4fac761a4a508454"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2bf30e4-e829-40dc-a0b6-056e54b84c8b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2bf30e4-e829-40dc-a0b6-056e54b84c8b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:01.434142399Z"}]},"request_id":"9a636b35-db38-42d4-ae21-8515c90ef10a","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.6003156} 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":"81e0ed185c05030b4fac761a4a508454"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fb458126-4e4c-46ea-ae76-07ce4b64a462","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.6075208} 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":"81e0ed185c05030b4fac761a4a508454"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2bf30e4-e829-40dc-a0b6-056e54b84c8b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2bf30e4-e829-40dc-a0b6-056e54b84c8b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:01.434142399Z"}]},"request_id":"4532b548-441b-4ca8-97c5-aa94d3643b45","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.6170802} 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":"81e0ed185c05030b4fac761a4a508454"},"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":"06/Jun/2024:13:15:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/b2bf30e4-e829-40dc-a0b6-056e54b84c8b? HTTP/1.1","status": "200","body_bytes_sent":"1141","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"81e0ed185c05030b4fac761a4a508454"} device-1 | {"level":"info","message":"PATCH /devices/b2bf30e4-e829-40dc-a0b6-056e54b84c8b? 200 32ms","method":"PATCH","requestID":"81e0ed185c05030b4fac761a4a508454","responseTime":32,"status":200,"url":"/devices/b2bf30e4-e829-40dc-a0b6-056e54b84c8b?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"59319cdbb8bc4af4ade06f566e245db6","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":105,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":105,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.248593,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/93526e1e-7ec3-4cd1-80b1-b947cf1c9e57","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/93526e1e-7ec3-4cd1-80b1-b947cf1c9e57","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679701,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4"} 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":"59319cdbb8bc4af4ade06f566e245db6"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F93526e1e-7ec3-4cd1-80b1-b947cf1c9e57","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F93526e1e-7ec3-4cd1-80b1-b947cf1c9e57","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:01.500546811Z"}]},"request_id":"07e704c4-6557-45c6-aef5-00beae68463e","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.6389215} 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":"59319cdbb8bc4af4ade06f566e245db6"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4c249347-2ee8-4a23-97a6-6b86d7e5c3e7","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.6458592} 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":"59319cdbb8bc4af4ade06f566e245db6"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F93526e1e-7ec3-4cd1-80b1-b947cf1c9e57","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F93526e1e-7ec3-4cd1-80b1-b947cf1c9e57","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:01.500546811Z"}]},"request_id":"7336f715-746b-489e-8ac3-e2d25f95396b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.656112} 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":"59319cdbb8bc4af4ade06f566e245db6"},"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":"06/Jun/2024:13:15:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/93526e1e-7ec3-4cd1-80b1-b947cf1c9e57? HTTP/1.1","status": "200","body_bytes_sent":"1491","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"59319cdbb8bc4af4ade06f566e245db6"} device-1 | {"level":"info","message":"PATCH /devices/93526e1e-7ec3-4cd1-80b1-b947cf1c9e57? 200 32ms","method":"PATCH","requestID":"59319cdbb8bc4af4ade06f566e245db6","responseTime":32,"status":200,"url":"/devices/93526e1e-7ec3-4cd1-80b1-b947cf1c9e57?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7115bbaf8303bb88c21f6cbc2210d3a1","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":106,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":106,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.003588,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f67cc00a-762a-42c0-bfda-1cb5ec35755f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/f67cc00a-762a-42c0-bfda-1cb5ec35755f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679701,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4"} 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":"7115bbaf8303bb88c21f6cbc2210d3a1"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff67cc00a-762a-42c0-bfda-1cb5ec35755f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff67cc00a-762a-42c0-bfda-1cb5ec35755f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:01.568654474Z"}]},"request_id":"40f1d304-f078-43a6-b4a7-120689392ae8","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.6780076} 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":"7115bbaf8303bb88c21f6cbc2210d3a1"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c0883699-cfae-4b60-ad6f-c3ae2f0b3060","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.6849263} 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":"7115bbaf8303bb88c21f6cbc2210d3a1"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff67cc00a-762a-42c0-bfda-1cb5ec35755f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff67cc00a-762a-42c0-bfda-1cb5ec35755f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:01.568654474Z"}]},"request_id":"b782be86-8c5a-41d1-8dd3-6da195794c0d","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.7015224} 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":"7115bbaf8303bb88c21f6cbc2210d3a1"},"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":"06/Jun/2024:13:15:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/f67cc00a-762a-42c0-bfda-1cb5ec35755f? HTTP/1.1","status": "200","body_bytes_sent":"1142","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7115bbaf8303bb88c21f6cbc2210d3a1"} device-1 | {"level":"info","message":"PATCH /devices/f67cc00a-762a-42c0-bfda-1cb5ec35755f? 200 40ms","method":"PATCH","requestID":"7115bbaf8303bb88c21f6cbc2210d3a1","responseTime":40,"status":200,"url":"/devices/f67cc00a-762a-42c0-bfda-1cb5ec35755f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"cab3357a97358dea3cfe6261b6b81453","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":107,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":107,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.220509,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2bf30e4-e829-40dc-a0b6-056e54b84c8b","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/b2bf30e4-e829-40dc-a0b6-056e54b84c8b","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679701,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4"} 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":"cab3357a97358dea3cfe6261b6b81453"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2bf30e4-e829-40dc-a0b6-056e54b84c8b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2bf30e4-e829-40dc-a0b6-056e54b84c8b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:01.434142399Z"}]},"request_id":"511063be-7a9c-44cd-9b7b-045e786dc71d","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.7251337} 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":"cab3357a97358dea3cfe6261b6b81453"},"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:36466","level":"info","msg":"Received request.","req_id":108,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":108,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.875784,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c52ef258-ede7-437d-818c-1119163c3d4f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/c52ef258-ede7-437d-818c-1119163c3d4f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679701,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4"} 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":"cab3357a97358dea3cfe6261b6b81453"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:44894","level":"info","msg":"Received request.","req_id":109,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:44908","level":"info","msg":"Received request.","req_id":110,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:44894","level":"info","msg":"Sent response.","req_id":109,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.318041,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/be6f7eeb-f3f8-4b67-be26-99b4ac140292","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/be6f7eeb-f3f8-4b67-be26-99b4ac140292","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679701,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4"} authorization-1 | {"level":"info","message":"POST /authorize 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cab3357a97358dea3cfe6261b6b81453"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":14}} authorization-1 | {"client_addr":"127.0.0.1:44908","level":"info","msg":"Sent response.","req_id":110,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.667258,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:44924","level":"info","msg":"Received request.","req_id":111,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/334b8b76-8c69-4a8f-a388-3337207953a6","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/334b8b76-8c69-4a8f-a388-3337207953a6","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679701,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4"} 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":"cab3357a97358dea3cfe6261b6b81453"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":15}} authorization-1 | {"client_addr":"127.0.0.1:44924","level":"info","msg":"Sent response.","req_id":111,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.389674,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/93526e1e-7ec3-4cd1-80b1-b947cf1c9e57","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/93526e1e-7ec3-4cd1-80b1-b947cf1c9e57","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679701,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4"} 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":"cab3357a97358dea3cfe6261b6b81453"},"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":"06/Jun/2024:13:15:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b2bf30e4-e829-40dc-a0b6-056e54b84c8b? HTTP/1.1","status": "200","body_bytes_sent":"1141","request_time":"0.057","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cab3357a97358dea3cfe6261b6b81453"} device-1 | {"level":"info","message":"GET /devices/b2bf30e4-e829-40dc-a0b6-056e54b84c8b? 200 52ms","method":"GET","requestID":"cab3357a97358dea3cfe6261b6b81453","responseTime":52,"status":200,"url":"/devices/b2bf30e4-e829-40dc-a0b6-056e54b84c8b?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"15a490f95797d04d8dc98c9e917097ce","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":112,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":112,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.309233,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/93526e1e-7ec3-4cd1-80b1-b947cf1c9e57","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/93526e1e-7ec3-4cd1-80b1-b947cf1c9e57","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679701,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4"} 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":"15a490f95797d04d8dc98c9e917097ce"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F93526e1e-7ec3-4cd1-80b1-b947cf1c9e57","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F93526e1e-7ec3-4cd1-80b1-b947cf1c9e57","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:01.500546811Z"}]},"request_id":"3012dd71-4eca-42d9-8aff-159d301934fb","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.7909305} 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":"15a490f95797d04d8dc98c9e917097ce"},"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:36466","level":"info","msg":"Received request.","req_id":113,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":113,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.848183,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:44894","level":"info","msg":"Received request.","req_id":114,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:44894","level":"info","msg":"Sent response.","req_id":114,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.110244,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:44908","level":"info","msg":"Received request.","req_id":115,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:44908","level":"info","msg":"Sent response.","req_id":115,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.743524,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:44924","level":"info","msg":"Received request.","req_id":116,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/57fa9549-92d7-4b87-bd46-ebf008d59e37","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/57fa9549-92d7-4b87-bd46-ebf008d59e37","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679701,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4"} 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":"15a490f95797d04d8dc98c9e917097ce"},"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/2a82b1b0-5ca4-497e-a296-ea562ceadafa","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/2a82b1b0-5ca4-497e-a296-ea562ceadafa","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679701,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4"} 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":"15a490f95797d04d8dc98c9e917097ce"},"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/5b2f4ad4-8b63-44de-b778-899101c1c9d0","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/5b2f4ad4-8b63-44de-b778-899101c1c9d0","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679701,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4"} 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":"15a490f95797d04d8dc98c9e917097ce"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:44924","level":"info","msg":"Sent response.","req_id":116,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.055113,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1739e7cc-6bc9-4edf-9f2a-f915611b0b2f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/1739e7cc-6bc9-4edf-9f2a-f915611b0b2f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679701,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4"} 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":"15a490f95797d04d8dc98c9e917097ce"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":117,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:44936","level":"info","msg":"Received request.","req_id":118,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":117,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.899845,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f67cc00a-762a-42c0-bfda-1cb5ec35755f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/f67cc00a-762a-42c0-bfda-1cb5ec35755f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679701,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4"} 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":"15a490f95797d04d8dc98c9e917097ce"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:44936","level":"info","msg":"Sent response.","req_id":118,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.928397,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2bf30e4-e829-40dc-a0b6-056e54b84c8b","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/b2bf30e4-e829-40dc-a0b6-056e54b84c8b","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679701,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4"} 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":"15a490f95797d04d8dc98c9e917097ce"},"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":"06/Jun/2024:13:15:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/93526e1e-7ec3-4cd1-80b1-b947cf1c9e57? HTTP/1.1","status": "200","body_bytes_sent":"1491","request_time":"0.055","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"15a490f95797d04d8dc98c9e917097ce"} device-1 | {"level":"info","message":"GET /devices/93526e1e-7ec3-4cd1-80b1-b947cf1c9e57? 200 47ms","method":"GET","requestID":"15a490f95797d04d8dc98c9e917097ce","responseTime":47,"status":200,"url":"/devices/93526e1e-7ec3-4cd1-80b1-b947cf1c9e57?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"cdd72b6a0667dfc6309a5a27affc7536","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":119,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":119,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.177306,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f67cc00a-762a-42c0-bfda-1cb5ec35755f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/f67cc00a-762a-42c0-bfda-1cb5ec35755f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679701,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4"} 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":"cdd72b6a0667dfc6309a5a27affc7536"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff67cc00a-762a-42c0-bfda-1cb5ec35755f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff67cc00a-762a-42c0-bfda-1cb5ec35755f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:01.568654474Z"}]},"request_id":"e993d2b3-6766-47ae-9d7f-85f43afcf0fc","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.8401086} 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":"cdd72b6a0667dfc6309a5a27affc7536"},"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:36466","level":"info","msg":"Received request.","req_id":120,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":120,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.181179,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:44894","level":"info","msg":"Received request.","req_id":121,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:44894","level":"info","msg":"Sent response.","req_id":121,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.643971,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:44908","level":"info","msg":"Received request.","req_id":122,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:44924","level":"info","msg":"Received request.","req_id":123,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/543df4c6-62cc-4a40-b31e-7e72fd3d0883","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/543df4c6-62cc-4a40-b31e-7e72fd3d0883","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679701,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4"} 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":"cdd72b6a0667dfc6309a5a27affc7536"},"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/0991bd5e-eeea-43d0-bb28-200971a73bd4","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/0991bd5e-eeea-43d0-bb28-200971a73bd4","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679701,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4"} 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":"cdd72b6a0667dfc6309a5a27affc7536"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:44908","level":"info","msg":"Sent response.","req_id":122,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.61457,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:44924","level":"info","msg":"Sent response.","req_id":123,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.929403,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3d867af3-8bb7-4d41-bce5-45c8ad48b360","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/3d867af3-8bb7-4d41-bce5-45c8ad48b360","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679701,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4"} 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":"cdd72b6a0667dfc6309a5a27affc7536"},"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/b2bf30e4-e829-40dc-a0b6-056e54b84c8b","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/b2bf30e4-e829-40dc-a0b6-056e54b84c8b","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679701,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4"} 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":"cdd72b6a0667dfc6309a5a27affc7536"},"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":"06/Jun/2024:13:15:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f67cc00a-762a-42c0-bfda-1cb5ec35755f? HTTP/1.1","status": "200","body_bytes_sent":"1142","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cdd72b6a0667dfc6309a5a27affc7536"} device-1 | {"level":"info","message":"GET /devices/f67cc00a-762a-42c0-bfda-1cb5ec35755f? 200 33ms","method":"GET","requestID":"cdd72b6a0667dfc6309a5a27affc7536","responseTime":33,"status":200,"url":"/devices/f67cc00a-762a-42c0-bfda-1cb5ec35755f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"10b5b65fdb637ac13340e302545b0e75","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":124,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":124,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.31401,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679701,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4"} 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":"10b5b65fdb637ac13340e302545b0e75"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcaf2e9cd-8eae-48ae-ab6e-9fe89d0827a5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"3d5a13e9-8dbf-4ca2-80a9-8050e5d55d24","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.8969848} 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":"10b5b65fdb637ac13340e302545b0e75"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"251009c8-080f-4a6e-8c83-a5d6cafdb0e1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.9053288} 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":"10b5b65fdb637ac13340e302545b0e75"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcaf2e9cd-8eae-48ae-ab6e-9fe89d0827a5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"d7c6382b-6eb8-4bfd-bf5f-7707bc2a082c","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.9177134} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ee3ce6aa-b0c1-4196-a917-8381d392943c","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.918133} 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":"10b5b65fdb637ac13340e302545b0e75"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcaf2e9cd-8eae-48ae-ab6e-9fe89d0827a5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcaf2e9cd-8eae-48ae-ab6e-9fe89d0827a5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:01.917691067Z"}]},"request_id":"43e473ae-18e4-41b9-81b0-44436fbecac4","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.924608} 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":"10b5b65fdb637ac13340e302545b0e75"},"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":"06/Jun/2024:13:15:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"284","request_time":"0.061","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"10b5b65fdb637ac13340e302545b0e75"} device-1 | {"level":"info","message":"POST /devices? 201 55ms","method":"POST","requestID":"10b5b65fdb637ac13340e302545b0e75","responseTime":55,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"50e4cbad729446f099729af6d01baa7f","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":125,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":125,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.59637,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:01Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679701,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMX0.5hgZXbFTk0K64baTJc6z1ExHsKy9uXlF_mONpBFgOm4"} 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":"50e4cbad729446f099729af6d01baa7f"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F897aba27-191e-4e29-85f9-7bd2f5d458b6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"110bc4a2-83ee-4884-a965-60c5d472a481","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.9631379} 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":"50e4cbad729446f099729af6d01baa7f"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"40016927-20a3-493a-bf51-a9dcd631ea71","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.9710186} 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":"50e4cbad729446f099729af6d01baa7f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F897aba27-191e-4e29-85f9-7bd2f5d458b6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"51fa8552-cdca-49ac-9c70-cc3392fb6d49","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.9847572} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9ba9ab75-3564-4146-891b-909eca0967c0","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.98498} 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":"50e4cbad729446f099729af6d01baa7f"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F897aba27-191e-4e29-85f9-7bd2f5d458b6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F897aba27-191e-4e29-85f9-7bd2f5d458b6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:01.984702165Z"}]},"request_id":"4bd1a58a-36cb-49a1-8cfc-5a444a8f0591","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679701.9919515} 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":"50e4cbad729446f099729af6d01baa7f"},"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":"06/Jun/2024:13:15:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"545","request_time":"0.066","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"50e4cbad729446f099729af6d01baa7f"} device-1 | {"level":"info","message":"POST /devices? 201 59ms","method":"POST","requestID":"50e4cbad729446f099729af6d01baa7f","responseTime":59,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMn0.FJ2nZv2Xw5w_jiya4e2460HtN2iNwV3FdZIWWdOjJlM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"38143ee2fb81df89ea0e4fc505f089e0","responseTime":8,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":126,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:02Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":126,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.783893,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679702,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwMn0.FJ2nZv2Xw5w_jiya4e2460HtN2iNwV3FdZIWWdOjJlM"} 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":"38143ee2fb81df89ea0e4fc505f089e0"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fa522bb-7583-4978-86ee-b81661459f1d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"2b7cda5a-65d7-468f-99dd-564c72c289f8","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679702.0360625} 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":"38143ee2fb81df89ea0e4fc505f089e0"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0beffc8f-cee6-4a06-8c33-59ca46294767","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679702.0450644} 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":"38143ee2fb81df89ea0e4fc505f089e0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fa522bb-7583-4978-86ee-b81661459f1d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"7cda641e-3714-4201-bda9-9671f1d5ad4d","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679702.0590892} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d03cd3f9-c28a-468a-9de6-fc9190961cce","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679702.0594852} 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":"38143ee2fb81df89ea0e4fc505f089e0"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fa522bb-7583-4978-86ee-b81661459f1d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fa522bb-7583-4978-86ee-b81661459f1d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:02.059063612Z"}]},"request_id":"d4d133c5-e2d0-488f-89ad-02ded9110d73","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679702.065838} 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":"38143ee2fb81df89ea0e4fc505f089e0"},"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":"06/Jun/2024:13:15: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.072","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"38143ee2fb81df89ea0e4fc505f089e0"} device-1 | {"level":"info","message":"POST /devices? 201 63ms","method":"POST","requestID":"38143ee2fb81df89ea0e4fc505f089e0","responseTime":63,"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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"fdd8cc68b1304f11db9a5d3f3ceab9fc","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"06/Jun/2024:13:15:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/8fa522bb-7583-4978-86ee-b81661459f1d/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":"fdd8cc68b1304f11db9a5d3f3ceab9fc"} device-1 | {"level":"info","message":"OPTIONS /devices/8fa522bb-7583-4978-86ee-b81661459f1d/websocket 200 1ms","method":"OPTIONS","requestID":"fdd8cc68b1304f11db9a5d3f3ceab9fc","responseTime":1,"status":200,"url":"/devices/8fa522bb-7583-4978-86ee-b81661459f1d/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwNH0.hkh-svHKInnn7MKrYdFn5AGUaPsUMY3kuMrcV1VaPcg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"93dea53a3eb06a0ed1b7e0a63f7c0651","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":127,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":127,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.305602,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/8fa522bb-7583-4978-86ee-b81661459f1d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/8fa522bb-7583-4978-86ee-b81661459f1d","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679704,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwNH0.hkh-svHKInnn7MKrYdFn5AGUaPsUMY3kuMrcV1VaPcg"} 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":"93dea53a3eb06a0ed1b7e0a63f7c0651"},"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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"de33bbe869b47583f59a15358df4a673","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"06/Jun/2024:13:15:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/caf2e9cd-8eae-48ae-ab6e-9fe89d0827a5/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":"de33bbe869b47583f59a15358df4a673"} device-1 | {"level":"info","message":"OPTIONS /devices/caf2e9cd-8eae-48ae-ab6e-9fe89d0827a5/websocket 200 1ms","method":"OPTIONS","requestID":"de33bbe869b47583f59a15358df4a673","responseTime":1,"status":200,"url":"/devices/caf2e9cd-8eae-48ae-ab6e-9fe89d0827a5/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwNH0.hkh-svHKInnn7MKrYdFn5AGUaPsUMY3kuMrcV1VaPcg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"bf7bc044106bf78d6fafdd9219647aa1","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"06/Jun/2024:13:15:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/8fa522bb-7583-4978-86ee-b81661459f1d/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.031","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"93dea53a3eb06a0ed1b7e0a63f7c0651"} device-1 | {"level":"info","message":"POST /devices/8fa522bb-7583-4978-86ee-b81661459f1d/websocket 200 24ms","method":"POST","requestID":"93dea53a3eb06a0ed1b7e0a63f7c0651","responseTime":24,"status":200,"url":"/devices/8fa522bb-7583-4978-86ee-b81661459f1d/websocket"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":128,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":128,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.10103,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/caf2e9cd-8eae-48ae-ab6e-9fe89d0827a5","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/caf2e9cd-8eae-48ae-ab6e-9fe89d0827a5","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679704,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwNH0.hkh-svHKInnn7MKrYdFn5AGUaPsUMY3kuMrcV1VaPcg"} 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":"bf7bc044106bf78d6fafdd9219647aa1"},"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":"06/Jun/2024:13:15:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/caf2e9cd-8eae-48ae-ab6e-9fe89d0827a5/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.025","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"bf7bc044106bf78d6fafdd9219647aa1"} device-1 | {"level":"info","message":"POST /devices/caf2e9cd-8eae-48ae-ab6e-9fe89d0827a5/websocket 200 21ms","method":"POST","requestID":"bf7bc044106bf78d6fafdd9219647aa1","responseTime":21,"status":200,"url":"/devices/caf2e9cd-8eae-48ae-ab6e-9fe89d0827a5/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/8fa522bb-7583-4978-86ee-b81661459f1d' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/caf2e9cd-8eae-48ae-ab6e-9fe89d0827a5' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwNH0.hkh-svHKInnn7MKrYdFn5AGUaPsUMY3kuMrcV1VaPcg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"55713f8c273dfd511aed2a263c6aef40","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":129,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":129,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.974875,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8fa522bb-7583-4978-86ee-b81661459f1d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/8fa522bb-7583-4978-86ee-b81661459f1d","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679704,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwNH0.hkh-svHKInnn7MKrYdFn5AGUaPsUMY3kuMrcV1VaPcg"} 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":"55713f8c273dfd511aed2a263c6aef40"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fa522bb-7583-4978-86ee-b81661459f1d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fa522bb-7583-4978-86ee-b81661459f1d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:02.059063612Z"}]},"request_id":"43219d43-4225-40f9-b419-8242932eed0d","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679704.0952337} 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":"55713f8c273dfd511aed2a263c6aef40"},"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":"06/Jun/2024:13:15:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8fa522bb-7583-4978-86ee-b81661459f1d? 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":"55713f8c273dfd511aed2a263c6aef40"} device-1 | {"level":"info","message":"GET /devices/8fa522bb-7583-4978-86ee-b81661459f1d? 200 14ms","method":"GET","requestID":"55713f8c273dfd511aed2a263c6aef40","responseTime":14,"status":200,"url":"/devices/8fa522bb-7583-4978-86ee-b81661459f1d?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwNH0.hkh-svHKInnn7MKrYdFn5AGUaPsUMY3kuMrcV1VaPcg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"ce122fef7fcadc8578c31a2f652a78d7","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:36466","level":"info","msg":"Received request.","req_id":130,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":130,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.694683,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679704,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwNH0.hkh-svHKInnn7MKrYdFn5AGUaPsUMY3kuMrcV1VaPcg"} 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":"ce122fef7fcadc8578c31a2f652a78d7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0b22f98e-e991-4600-878d-4f07ec2ffd14"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0b22f98e-e991-4600-878d-4f07ec2ffd14"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0b22f98e-e991-4600-878d-4f07ec2ffd14"},"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:36466","level":"info","msg":"Received request.","req_id":131,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":131,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.128491,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"client_addr":"127.0.0.1:44894","level":"info","msg":"Received request.","req_id":132,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/897aba27-191e-4e29-85f9-7bd2f5d458b6","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/897aba27-191e-4e29-85f9-7bd2f5d458b6","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679704,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwNH0.hkh-svHKInnn7MKrYdFn5AGUaPsUMY3kuMrcV1VaPcg"} 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":"c98c8d10-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:44894","level":"info","msg":"Sent response.","req_id":132,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.345554,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8fa522bb-7583-4978-86ee-b81661459f1d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/8fa522bb-7583-4978-86ee-b81661459f1d","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679704,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwNH0.hkh-svHKInnn7MKrYdFn5AGUaPsUMY3kuMrcV1VaPcg"} 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":"c98cb420-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F897aba27-191e-4e29-85f9-7bd2f5d458b6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F897aba27-191e-4e29-85f9-7bd2f5d458b6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:01.984702165Z"}]},"request_id":"67cadbc5-be3e-48de-b666-2317a7c24e5f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679704.171695} 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":"c98c8d10-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fa522bb-7583-4978-86ee-b81661459f1d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fa522bb-7583-4978-86ee-b81661459f1d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:02.059063612Z"}]},"request_id":"da498857-3907-4d70-84e3-4b1ba53e0cf0","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679704.1748075} 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":"c98cb420-2406-11ef-9563-e3996e819f8c"},"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:36466","level":"info","msg":"Received request.","req_id":133,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":133,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.919514,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:04Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/caf2e9cd-8eae-48ae-ab6e-9fe89d0827a5","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/caf2e9cd-8eae-48ae-ab6e-9fe89d0827a5","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679704,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwNH0.hkh-svHKInnn7MKrYdFn5AGUaPsUMY3kuMrcV1VaPcg"} device-1 | {"level":"info","message":"GET /devices/8fa522bb-7583-4978-86ee-b81661459f1d? 200 18ms","method":"GET","requestID":"c98cb420-2406-11ef-9563-e3996e819f8c","responseTime":18,"status":200,"url":"/devices/8fa522bb-7583-4978-86ee-b81661459f1d?"} 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":"c98c8d10-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/897aba27-191e-4e29-85f9-7bd2f5d458b6? 200 20ms","method":"GET","requestID":"c98c8d10-2406-11ef-9563-e3996e819f8c","responseTime":20,"status":200,"url":"/devices/897aba27-191e-4e29-85f9-7bd2f5d458b6?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0b22f98e-e991-4600-878d-4f07ec2ffd14"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0b22f98e-e991-4600-878d-4f07ec2ffd14"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0b22f98e-e991-4600-878d-4f07ec2ffd14"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0b22f98e-e991-4600-878d-4f07ec2ffd14"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0b22f98e-e991-4600-878d-4f07ec2ffd14"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0b22f98e-e991-4600-878d-4f07ec2ffd14"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0b22f98e-e991-4600-878d-4f07ec2ffd14"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0b22f98e-e991-4600-878d-4f07ec2ffd14"},"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:36466","level":"info","msg":"Received request.","req_id":134,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"client_addr":"127.0.0.1:44894","level":"info","msg":"Received request.","req_id":135,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":134,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.005703,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/caf2e9cd-8eae-48ae-ab6e-9fe89d0827a5","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/caf2e9cd-8eae-48ae-ab6e-9fe89d0827a5","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679704,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwNH0.hkh-svHKInnn7MKrYdFn5AGUaPsUMY3kuMrcV1VaPcg"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0b22f98e-e991-4600-878d-4f07ec2ffd14"},"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":"c9993740-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:44894","level":"info","msg":"Sent response.","req_id":135,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.932767,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8fa522bb-7583-4978-86ee-b81661459f1d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/8fa522bb-7583-4978-86ee-b81661459f1d","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679704,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwNH0.hkh-svHKInnn7MKrYdFn5AGUaPsUMY3kuMrcV1VaPcg"} 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":"c9998560-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcaf2e9cd-8eae-48ae-ab6e-9fe89d0827a5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcaf2e9cd-8eae-48ae-ab6e-9fe89d0827a5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:01.917691067Z"}]},"request_id":"82508a2c-59c7-4695-a4f5-1d571d889128","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679704.2558851} 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":"c9993740-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fa522bb-7583-4978-86ee-b81661459f1d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fa522bb-7583-4978-86ee-b81661459f1d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:02.059063612Z"}]},"request_id":"df74b371-82eb-4b93-acc1-fe26373176f4","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679704.2573345} 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":"c9998560-2406-11ef-9563-e3996e819f8c"},"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/caf2e9cd-8eae-48ae-ab6e-9fe89d0827a5? 200 18ms","method":"GET","requestID":"c9993740-2406-11ef-9563-e3996e819f8c","responseTime":18,"status":200,"url":"/devices/caf2e9cd-8eae-48ae-ab6e-9fe89d0827a5?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/8fa522bb-7583-4978-86ee-b81661459f1d? 200 17ms","method":"GET","requestID":"c9998560-2406-11ef-9563-e3996e819f8c","responseTime":17,"status":200,"url":"/devices/8fa522bb-7583-4978-86ee-b81661459f1d?"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0b22f98e-e991-4600-878d-4f07ec2ffd14#owner@http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0b22f98e-e991-4600-878d-4f07ec2ffd14","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"4363254c-7116-4cc6-a6b2-f41a131f4ef0","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679704.2660444} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a3b402b6-910f-484d-971f-71be018d44a9","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679704.2662294} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} 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":"ce122fef7fcadc8578c31a2f652a78d7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":16}} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":136,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":136,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.070066,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/caf2e9cd-8eae-48ae-ab6e-9fe89d0827a5","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/caf2e9cd-8eae-48ae-ab6e-9fe89d0827a5","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c99cb9b0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/0b22f98e-e991-4600-878d-4f07ec2ffd14","user":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"06/Jun/2024:13:15:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"807","request_time":"0.175","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ce122fef7fcadc8578c31a2f652a78d7"} experiment-1 | {"level":"info","message":"POST /experiments? 201 168ms","method":"POST","requestID":"ce122fef7fcadc8578c31a2f652a78d7","responseTime":168,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/caf2e9cd-8eae-48ae-ab6e-9fe89d0827a5/signaling 200 11ms","method":"POST","requestID":"c99cb9b0-2406-11ef-9563-e3996e819f8c","responseTime":11,"status":200,"url":"/devices/caf2e9cd-8eae-48ae-ab6e-9fe89d0827a5/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwNH0.hkh-svHKInnn7MKrYdFn5AGUaPsUMY3kuMrcV1VaPcg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"096aa00871c56a7c654a6426ec07bf9f","responseTime":4,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":137,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:04Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":137,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.095662,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/8fa522bb-7583-4978-86ee-b81661459f1d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8fa522bb-7583-4978-86ee-b81661459f1d","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c99edc90-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":138,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:04Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":138,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.740553,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:04Z"} device-1 | {"level":"info","message":"POST /devices/8fa522bb-7583-4978-86ee-b81661459f1d/signaling 200 8ms","method":"POST","requestID":"c99edc90-2406-11ef-9563-e3996e819f8c","responseTime":8,"status":200,"url":"/devices/8fa522bb-7583-4978-86ee-b81661459f1d/signaling"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/caf2e9cd-8eae-48ae-ab6e-9fe89d0827a5","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/caf2e9cd-8eae-48ae-ab6e-9fe89d0827a5","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679704,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwNH0.hkh-svHKInnn7MKrYdFn5AGUaPsUMY3kuMrcV1VaPcg"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0b22f98e-e991-4600-878d-4f07ec2ffd14"},"level":"info","message":"Attempting to create peerconnections for experiment"} 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":"096aa00871c56a7c654a6426ec07bf9f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0b22f98e-e991-4600-878d-4f07ec2ffd14"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"131694a4-c94e-4b0b-a4d7-f82c845e88a5"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"563239eb-9f50-48a4-b566-a01f68a6a618"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"e79f7d37-9a76-4520-9843-e7b7287ec70b"}]},"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/caf2e9cd-8eae-48ae-ab6e-9fe89d0827a5"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/8fa522bb-7583-4978-86ee-b81661459f1d"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} 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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcaf2e9cd-8eae-48ae-ab6e-9fe89d0827a5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcaf2e9cd-8eae-48ae-ab6e-9fe89d0827a5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:01.917691067Z"}]},"request_id":"dfdc69b7-ab9c-4916-ad7e-319c54002dbd","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679704.29473} 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":"096aa00871c56a7c654a6426ec07bf9f"},"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:36466","level":"info","msg":"Received request.","req_id":139,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":139,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.816553,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679704,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwNH0.hkh-svHKInnn7MKrYdFn5AGUaPsUMY3kuMrcV1VaPcg"} 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":"c9a0b150-2406-11ef-9563-e3996e819f8c"},"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":"06/Jun/2024:13:15:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/caf2e9cd-8eae-48ae-ab6e-9fe89d0827a5? HTTP/1.1","status": "200","body_bytes_sent":"283","request_time":"0.024","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"096aa00871c56a7c654a6426ec07bf9f"} device-1 | {"level":"info","message":"GET /devices/caf2e9cd-8eae-48ae-ab6e-9fe89d0827a5? 200 19ms","method":"GET","requestID":"096aa00871c56a7c654a6426ec07bf9f","responseTime":19,"status":200,"url":"/devices/caf2e9cd-8eae-48ae-ab6e-9fe89d0827a5?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwNH0.hkh-svHKInnn7MKrYdFn5AGUaPsUMY3kuMrcV1VaPcg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"84360db5ce3185fabcda16383ad059a4","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"4a287ceb-3a66-4345-abb0-2f20d3dab918","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679704.312156} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e58967c8-f8d9-46aa-98df-73be79a32c90","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679704.3124998} 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":"c9a0b150-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":140,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":140,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.898952,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8fa522bb-7583-4978-86ee-b81661459f1d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/8fa522bb-7583-4978-86ee-b81661459f1d","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679704,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwNH0.hkh-svHKInnn7MKrYdFn5AGUaPsUMY3kuMrcV1VaPcg"} 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":"84360db5ce3185fabcda16383ad059a4"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fa522bb-7583-4978-86ee-b81661459f1d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8fa522bb-7583-4978-86ee-b81661459f1d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:02.059063612Z"}]},"request_id":"c7970ea9-0993-4f81-bd64-d75a92ce7f54","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679704.3208218} 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":"84360db5ce3185fabcda16383ad059a4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"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/2e9c5dc8-b8a0-4d82-b27d-ff73792c4334'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/2e9c5dc8-b8a0-4d82-b27d-ff73792c4334'"} 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 39ms","method":"POST","requestID":"c9a0b150-2406-11ef-9563-e3996e819f8c","responseTime":39,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/8fa522bb-7583-4978-86ee-b81661459f1d? 200 23ms","method":"GET","requestID":"84360db5ce3185fabcda16383ad059a4","responseTime":23,"status":200,"url":"/devices/8fa522bb-7583-4978-86ee-b81661459f1d?"} gateway-1 | {"time_local":"06/Jun/2024:13:15:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8fa522bb-7583-4978-86ee-b81661459f1d? 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":"84360db5ce3185fabcda16383ad059a4"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0b22f98e-e991-4600-878d-4f07ec2ffd14"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/2e9c5dc8-b8a0-4d82-b27d-ff73792c4334' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"2e9c5dc8-b8a0-4d82-b27d-ff73792c4334","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"2b29a733fd7ab0ff36f89838991b4b64","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/caf2e9cd-8eae-48ae-ab6e-9fe89d0827a5"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/8fa522bb-7583-4978-86ee-b81661459f1d"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/2e9c5dc8-b8a0-4d82-b27d-ff73792c4334"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 10ms","method":"POST","requestID":"2b29a733fd7ab0ff36f89838991b4b64","responseTime":10,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15: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.015","http_referrer":"","http_user_agent":"node-fetch","requestID":"2b29a733fd7ab0ff36f89838991b4b64"} device-1 | {"data":{"peerconnection":"2e9c5dc8-b8a0-4d82-b27d-ff73792c4334","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"2e9c5dc8-b8a0-4d82-b27d-ff73792c4334","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/2e9c5dc8-b8a0-4d82-b27d-ff73792c4334' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"2e9c5dc8-b8a0-4d82-b27d-ff73792c4334","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"9108e6b2e7ecc19c9bd938cabf2c8f7a","responseTime":0,"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/caf2e9cd-8eae-48ae-ab6e-9fe89d0827a5"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/8fa522bb-7583-4978-86ee-b81661459f1d"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/2e9c5dc8-b8a0-4d82-b27d-ff73792c4334"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":141,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","contextual_tuples":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F2e9c5dc8-b8a0-4d82-b27d-ff73792c4334","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3fc430fa-7ebb-491a-b53f-84dbdd9cb9c7","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679704.6399124} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":141,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.914469,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/2e9c5dc8-b8a0-4d82-b27d-ff73792c4334","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/2e9c5dc8-b8a0-4d82-b27d-ff73792c4334","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":"c9d49290-2406-11ef-9563-e3996e819f8c"},"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/2e9c5dc8-b8a0-4d82-b27d-ff73792c4334 200 12ms","method":"GET","requestID":"c9d49290-2406-11ef-9563-e3996e819f8c","responseTime":12,"status":200,"url":"/peerconnections/2e9c5dc8-b8a0-4d82-b27d-ff73792c4334"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 44ms","method":"POST","requestID":"9108e6b2e7ecc19c9bd938cabf2c8f7a","responseTime":44,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15: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.048","http_referrer":"","http_user_agent":"node-fetch","requestID":"9108e6b2e7ecc19c9bd938cabf2c8f7a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwNH0.hkh-svHKInnn7MKrYdFn5AGUaPsUMY3kuMrcV1VaPcg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"4e632ed89cebc20e2e409754db2c1937","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/0b22f98e-e991-4600-878d-4f07ec2ffd14"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":142,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":142,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.327634,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/0b22f98e-e991-4600-878d-4f07ec2ffd14","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/0b22f98e-e991-4600-878d-4f07ec2ffd14","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679704,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwNH0.hkh-svHKInnn7MKrYdFn5AGUaPsUMY3kuMrcV1VaPcg"} 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":"4e632ed89cebc20e2e409754db2c1937"},"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/0b22f98e-e991-4600-878d-4f07ec2ffd14"} gateway-1 | {"time_local":"06/Jun/2024:13:15:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/0b22f98e-e991-4600-878d-4f07ec2ffd14 HTTP/1.1","status": "200","body_bytes_sent":"880","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4e632ed89cebc20e2e409754db2c1937"} experiment-1 | {"level":"info","message":"GET /experiments/0b22f98e-e991-4600-878d-4f07ec2ffd14 200 18ms","method":"GET","requestID":"4e632ed89cebc20e2e409754db2c1937","responseTime":18,"status":200,"url":"/experiments/0b22f98e-e991-4600-878d-4f07ec2ffd14"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwNH0.hkh-svHKInnn7MKrYdFn5AGUaPsUMY3kuMrcV1VaPcg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"63af08fec08048ccdab79c3445fc7801","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/0b22f98e-e991-4600-878d-4f07ec2ffd14"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":143,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":143,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.322622,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/0b22f98e-e991-4600-878d-4f07ec2ffd14","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/0b22f98e-e991-4600-878d-4f07ec2ffd14","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679704,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwNH0.hkh-svHKInnn7MKrYdFn5AGUaPsUMY3kuMrcV1VaPcg"} 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":"63af08fec08048ccdab79c3445fc7801"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0b22f98e-e991-4600-878d-4f07ec2ffd14"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":144,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":144,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.188832,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:04Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/2e9c5dc8-b8a0-4d82-b27d-ff73792c4334","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:http://localhost/peerconnections/2e9c5dc8-b8a0-4d82-b27d-ff73792c4334","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679704,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwNH0.hkh-svHKInnn7MKrYdFn5AGUaPsUMY3kuMrcV1VaPcg"} 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":"c9e7a560-2406-11ef-9563-e3996e819f8c"},"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/2e9c5dc8-b8a0-4d82-b27d-ff73792c4334' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/2e9c5dc8-b8a0-4d82-b27d-ff73792c4334' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"2e9c5dc8-b8a0-4d82-b27d-ff73792c4334","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"8630185f1b335833a14f27be9493de9b","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":"closed","url":"http://localhost/devices/caf2e9cd-8eae-48ae-ab6e-9fe89d0827a5"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/8fa522bb-7583-4978-86ee-b81661459f1d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/2e9c5dc8-b8a0-4d82-b27d-ff73792c4334"}}},"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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F2e9c5dc8-b8a0-4d82-b27d-ff73792c4334': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F2e9c5dc8-b8a0-4d82-b27d-ff73792c4334","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"96e7b83d-81c2-448f-9606-8c0006272663","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679704.7886486} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"62b22eee0aee1f3858b3740df1ebb7fc","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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"53a3c021-1972-403b-8c79-4bb71bfef0bd","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679704.7892165} 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/caf2e9cd-8eae-48ae-ab6e-9fe89d0827a5"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/8fa522bb-7583-4978-86ee-b81661459f1d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/2e9c5dc8-b8a0-4d82-b27d-ff73792c4334"}}},"level":"info","message":"received a callback"} 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":"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":"c9e7a560-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":17}} device-1 | {"data":{"peerconnection":"2e9c5dc8-b8a0-4d82-b27d-ff73792c4334","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/2e9c5dc8-b8a0-4d82-b27d-ff73792c4334 204 65ms","method":"DELETE","requestID":"c9e7a560-2406-11ef-9563-e3996e819f8c","responseTime":65,"status":204,"url":"/peerconnections/2e9c5dc8-b8a0-4d82-b27d-ff73792c4334"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0b22f98e-e991-4600-878d-4f07ec2ffd14"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0b22f98e-e991-4600-878d-4f07ec2ffd14': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0b22f98e-e991-4600-878d-4f07ec2ffd14","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"5c5e8648-8213-479b-8c5b-514c95d99778","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679704.862943} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"582e30f8-297d-4964-968b-cb89ece61a77","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679704.8636198} 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":"63af08fec08048ccdab79c3445fc7801"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":17}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/0b22f98e-e991-4600-878d-4f07ec2ffd14"} gateway-1 | {"time_local":"06/Jun/2024:13:15:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/0b22f98e-e991-4600-878d-4f07ec2ffd14 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.454","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"63af08fec08048ccdab79c3445fc7801"} experiment-1 | {"level":"info","message":"DELETE /experiments/0b22f98e-e991-4600-878d-4f07ec2ffd14 204 449ms","method":"DELETE","requestID":"63af08fec08048ccdab79c3445fc7801","responseTime":449,"status":204,"url":"/experiments/0b22f98e-e991-4600-878d-4f07ec2ffd14"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 407ms","method":"POST","requestID":"8630185f1b335833a14f27be9493de9b","responseTime":407,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwNX0.DBCfTtBimwF8_XRoMp0Ub3BX_8T-JojjYDNTCgzN8dU","level":"info","message":"auth send jwt"} gateway-1 | {"time_local":"06/Jun/2024:13:15: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.414","http_referrer":"","http_user_agent":"node-fetch","requestID":"8630185f1b335833a14f27be9493de9b"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"7970c1a8a6b18ce32e4b6887c3db20c8","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 406ms","method":"POST","requestID":"62b22eee0aee1f3858b3740df1ebb7fc","responseTime":406,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15: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.414","http_referrer":"","http_user_agent":"node-fetch","requestID":"62b22eee0aee1f3858b3740df1ebb7fc"} gateway-1 | {"time_local":"06/Jun/2024:13:15:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1757","request_time":"1.134","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f30a73aa54ae0c2697eb5a458fb49227"} gateway-1 | {"time_local":"06/Jun/2024:13:15:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1487","request_time":"1.153","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"89598125e1b3b780f4649833f613b329"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":145,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:05Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":145,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.813444,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679705,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwNX0.DBCfTtBimwF8_XRoMp0Ub3BX_8T-JojjYDNTCgzN8dU"} 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":"7970c1a8a6b18ce32e4b6887c3db20c8"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/caf2e9cd-8eae-48ae-ab6e-9fe89d0827a5' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/8fa522bb-7583-4978-86ee-b81661459f1d' 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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ceeceec-a7ed-4b7e-a15d-889788c90b4c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"413bc360-3ce1-4bde-9d05-bb29a935630f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679705.4811952} 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":"7970c1a8a6b18ce32e4b6887c3db20c8"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"02c2675d-4c9b-4b50-badb-eddc4821baa0","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679705.488946} 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":"7970c1a8a6b18ce32e4b6887c3db20c8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ceeceec-a7ed-4b7e-a15d-889788c90b4c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"ca213dea-0bf5-4471-a02f-0873293afca9","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679705.5023148} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c6e8cfe9-0b50-4a88-be9b-fd81c1171e9e","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679705.5038197} 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":"7970c1a8a6b18ce32e4b6887c3db20c8"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ceeceec-a7ed-4b7e-a15d-889788c90b4c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ceeceec-a7ed-4b7e-a15d-889788c90b4c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:05.502288654Z"}]},"request_id":"c4005f76-789a-421b-9568-7dffa116778e","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679705.5104976} 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":"7970c1a8a6b18ce32e4b6887c3db20c8"},"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":"06/Jun/2024:13:15: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.323","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7970c1a8a6b18ce32e4b6887c3db20c8"} device-1 | {"level":"info","message":"POST /devices? 201 312ms","method":"POST","requestID":"7970c1a8a6b18ce32e4b6887c3db20c8","responseTime":312,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwNX0.DBCfTtBimwF8_XRoMp0Ub3BX_8T-JojjYDNTCgzN8dU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"6d0845b7f13d53ac2ccf8d7b7d1b49e2","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":146,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:05Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":146,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.224933,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679705,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwNX0.DBCfTtBimwF8_XRoMp0Ub3BX_8T-JojjYDNTCgzN8dU"} 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":"6d0845b7f13d53ac2ccf8d7b7d1b49e2"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed1d71d3-f0d5-48de-8252-a8bb33425f2d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"ea0fe5a9-3591-45af-80bc-62eba82fe538","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679705.546634} 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":"6d0845b7f13d53ac2ccf8d7b7d1b49e2"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e3676adf-f3bd-4f82-b214-cce670b1efaa","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679705.5528374} 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":"6d0845b7f13d53ac2ccf8d7b7d1b49e2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed1d71d3-f0d5-48de-8252-a8bb33425f2d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"3c14272f-b846-416f-9d27-55f178f7bb36","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679705.5641484} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1add41ba-f6d1-4623-8b77-f9c3aea5d4ae","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679705.5644073} 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":"6d0845b7f13d53ac2ccf8d7b7d1b49e2"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed1d71d3-f0d5-48de-8252-a8bb33425f2d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed1d71d3-f0d5-48de-8252-a8bb33425f2d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:05.564122732Z"}]},"request_id":"8da65742-a655-43cd-b681-09a345b752bc","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679705.5695393} 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":"6d0845b7f13d53ac2ccf8d7b7d1b49e2"},"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":"06/Jun/2024:13:15: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.056","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6d0845b7f13d53ac2ccf8d7b7d1b49e2"} device-1 | {"level":"info","message":"POST /devices? 201 49ms","method":"POST","requestID":"6d0845b7f13d53ac2ccf8d7b7d1b49e2","responseTime":49,"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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"43374996456cf1a57271a261b6b48970","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"3f0ac2449266db9a11617ef76a599728","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"06/Jun/2024:13:15:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/5ceeceec-a7ed-4b7e-a15d-889788c90b4c/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":"43374996456cf1a57271a261b6b48970"} device-1 | {"level":"info","message":"OPTIONS /devices/5ceeceec-a7ed-4b7e-a15d-889788c90b4c/websocket 200 1ms","method":"OPTIONS","requestID":"43374996456cf1a57271a261b6b48970","responseTime":1,"status":200,"url":"/devices/5ceeceec-a7ed-4b7e-a15d-889788c90b4c/websocket"} gateway-1 | {"time_local":"06/Jun/2024:13:15:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/ed1d71d3-f0d5-48de-8252-a8bb33425f2d/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.006","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"3f0ac2449266db9a11617ef76a599728"} device-1 | {"level":"info","message":"OPTIONS /devices/ed1d71d3-f0d5-48de-8252-a8bb33425f2d/websocket 200 1ms","method":"OPTIONS","requestID":"3f0ac2449266db9a11617ef76a599728","responseTime":1,"status":200,"url":"/devices/ed1d71d3-f0d5-48de-8252-a8bb33425f2d/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwN30.FVLEx7FmiAfW-1pJEw0vUbUqZfXKWh4jXJs48WMI6Fs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"55d32db7682984d3b62b541c0411b401","responseTime":6,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwN30.FVLEx7FmiAfW-1pJEw0vUbUqZfXKWh4jXJs48WMI6Fs","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"4d3215fb19d012bc68c30463df5c432d","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":147,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:07Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":147,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.726433,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:07Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5ceeceec-a7ed-4b7e-a15d-889788c90b4c","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/5ceeceec-a7ed-4b7e-a15d-889788c90b4c","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679707,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwN30.FVLEx7FmiAfW-1pJEw0vUbUqZfXKWh4jXJs48WMI6Fs"} 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":"55d32db7682984d3b62b541c0411b401"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:44894","level":"info","msg":"Received request.","req_id":148,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:07Z"} authorization-1 | {"client_addr":"127.0.0.1:44894","level":"info","msg":"Sent response.","req_id":148,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.932027,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:07Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ed1d71d3-f0d5-48de-8252-a8bb33425f2d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/ed1d71d3-f0d5-48de-8252-a8bb33425f2d","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679707,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwN30.FVLEx7FmiAfW-1pJEw0vUbUqZfXKWh4jXJs48WMI6Fs"} 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":"4d3215fb19d012bc68c30463df5c432d"},"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":"06/Jun/2024:13:15:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/ed1d71d3-f0d5-48de-8252-a8bb33425f2d/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.021","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"4d3215fb19d012bc68c30463df5c432d"} device-1 | {"level":"info","message":"POST /devices/ed1d71d3-f0d5-48de-8252-a8bb33425f2d/websocket 200 14ms","method":"POST","requestID":"4d3215fb19d012bc68c30463df5c432d","responseTime":14,"status":200,"url":"/devices/ed1d71d3-f0d5-48de-8252-a8bb33425f2d/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"06/Jun/2024:13:15:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/5ceeceec-a7ed-4b7e-a15d-889788c90b4c/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.035","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"55d32db7682984d3b62b541c0411b401"} device-1 | {"level":"info","message":"POST /devices/5ceeceec-a7ed-4b7e-a15d-889788c90b4c/websocket 200 28ms","method":"POST","requestID":"55d32db7682984d3b62b541c0411b401","responseTime":28,"status":200,"url":"/devices/5ceeceec-a7ed-4b7e-a15d-889788c90b4c/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/ed1d71d3-f0d5-48de-8252-a8bb33425f2d' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/5ceeceec-a7ed-4b7e-a15d-889788c90b4c' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwN30.FVLEx7FmiAfW-1pJEw0vUbUqZfXKWh4jXJs48WMI6Fs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"73b32f3d1117918592a837e55761be70","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":149,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:07Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":149,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.704861,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5ceeceec-a7ed-4b7e-a15d-889788c90b4c","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/5ceeceec-a7ed-4b7e-a15d-889788c90b4c","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679707,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwN30.FVLEx7FmiAfW-1pJEw0vUbUqZfXKWh4jXJs48WMI6Fs"} 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":"73b32f3d1117918592a837e55761be70"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ceeceec-a7ed-4b7e-a15d-889788c90b4c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ceeceec-a7ed-4b7e-a15d-889788c90b4c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:05.502288654Z"}]},"request_id":"91beb1d4-62b6-4ac0-b60b-23d1152a3e7b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679707.5901568} 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":"73b32f3d1117918592a837e55761be70"},"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":"06/Jun/2024:13:15:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5ceeceec-a7ed-4b7e-a15d-889788c90b4c? 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":"73b32f3d1117918592a837e55761be70"} device-1 | {"level":"info","message":"GET /devices/5ceeceec-a7ed-4b7e-a15d-889788c90b4c? 200 13ms","method":"GET","requestID":"73b32f3d1117918592a837e55761be70","responseTime":13,"status":200,"url":"/devices/5ceeceec-a7ed-4b7e-a15d-889788c90b4c?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwN30.FVLEx7FmiAfW-1pJEw0vUbUqZfXKWh4jXJs48WMI6Fs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"61e77e17c5e5d0d233773d1877c05dec","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":150,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:07Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":150,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.137706,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ed1d71d3-f0d5-48de-8252-a8bb33425f2d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/ed1d71d3-f0d5-48de-8252-a8bb33425f2d","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679707,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwN30.FVLEx7FmiAfW-1pJEw0vUbUqZfXKWh4jXJs48WMI6Fs"} 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":"61e77e17c5e5d0d233773d1877c05dec"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed1d71d3-f0d5-48de-8252-a8bb33425f2d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed1d71d3-f0d5-48de-8252-a8bb33425f2d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:05.564122732Z"}]},"request_id":"f287f93c-3d0a-4456-82f4-44880104efd3","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679707.607622} 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":"61e77e17c5e5d0d233773d1877c05dec"},"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":"06/Jun/2024:13:15:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ed1d71d3-f0d5-48de-8252-a8bb33425f2d? 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":"61e77e17c5e5d0d233773d1877c05dec"} device-1 | {"level":"info","message":"GET /devices/ed1d71d3-f0d5-48de-8252-a8bb33425f2d? 200 15ms","method":"GET","requestID":"61e77e17c5e5d0d233773d1877c05dec","responseTime":15,"status":200,"url":"/devices/ed1d71d3-f0d5-48de-8252-a8bb33425f2d?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwN30.FVLEx7FmiAfW-1pJEw0vUbUqZfXKWh4jXJs48WMI6Fs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f230b866af7574429c924bc2b5421337","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:36466","level":"info","msg":"Received request.","req_id":151,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:07Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":151,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.206372,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:07Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679707,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwN30.FVLEx7FmiAfW-1pJEw0vUbUqZfXKWh4jXJs48WMI6Fs"} 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":"f230b866af7574429c924bc2b5421337"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4e524722-ae06-46d2-a675-b79189ee7799"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4e524722-ae06-46d2-a675-b79189ee7799"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4e524722-ae06-46d2-a675-b79189ee7799"},"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:36466","level":"info","msg":"Received request.","req_id":152,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:07Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":152,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.659821,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5ceeceec-a7ed-4b7e-a15d-889788c90b4c","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/5ceeceec-a7ed-4b7e-a15d-889788c90b4c","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679707,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwN30.FVLEx7FmiAfW-1pJEw0vUbUqZfXKWh4jXJs48WMI6Fs"} 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":"cbce3fb0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"client_addr":"127.0.0.1:44894","level":"info","msg":"Received request.","req_id":153,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:07Z"} authorization-1 | {"client_addr":"127.0.0.1:44894","level":"info","msg":"Sent response.","req_id":153,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.341855,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ed1d71d3-f0d5-48de-8252-a8bb33425f2d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/ed1d71d3-f0d5-48de-8252-a8bb33425f2d","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679707,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwN30.FVLEx7FmiAfW-1pJEw0vUbUqZfXKWh4jXJs48WMI6Fs"} 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":"cbce8dd0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ceeceec-a7ed-4b7e-a15d-889788c90b4c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ceeceec-a7ed-4b7e-a15d-889788c90b4c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:05.502288654Z"}]},"request_id":"632363db-d62b-4772-92d1-1bc9ec99cd09","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679707.95624} 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":"cbce3fb0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed1d71d3-f0d5-48de-8252-a8bb33425f2d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed1d71d3-f0d5-48de-8252-a8bb33425f2d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:05.564122732Z"}]},"request_id":"19eaa1ec-7c03-42ca-aac2-1a0ad11cf2ae","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679707.956845} 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":"cbce8dd0-2406-11ef-9563-e3996e819f8c"},"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/5ceeceec-a7ed-4b7e-a15d-889788c90b4c? 200 17ms","method":"GET","requestID":"cbce3fb0-2406-11ef-9563-e3996e819f8c","responseTime":17,"status":200,"url":"/devices/5ceeceec-a7ed-4b7e-a15d-889788c90b4c?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/ed1d71d3-f0d5-48de-8252-a8bb33425f2d? 200 16ms","method":"GET","requestID":"cbce8dd0-2406-11ef-9563-e3996e819f8c","responseTime":16,"status":200,"url":"/devices/ed1d71d3-f0d5-48de-8252-a8bb33425f2d?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4e524722-ae06-46d2-a675-b79189ee7799"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4e524722-ae06-46d2-a675-b79189ee7799"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4e524722-ae06-46d2-a675-b79189ee7799"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4e524722-ae06-46d2-a675-b79189ee7799"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4e524722-ae06-46d2-a675-b79189ee7799"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4e524722-ae06-46d2-a675-b79189ee7799"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4e524722-ae06-46d2-a675-b79189ee7799"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4e524722-ae06-46d2-a675-b79189ee7799"},"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:36466","level":"info","msg":"Received request.","req_id":154,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:08Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4e524722-ae06-46d2-a675-b79189ee7799"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":154,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.426118,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5ceeceec-a7ed-4b7e-a15d-889788c90b4c","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/5ceeceec-a7ed-4b7e-a15d-889788c90b4c","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679707,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwN30.FVLEx7FmiAfW-1pJEw0vUbUqZfXKWh4jXJs48WMI6Fs"} 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":"cbd9b160-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:44894","level":"info","msg":"Received request.","req_id":155,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:08Z"} authorization-1 | {"client_addr":"127.0.0.1:44894","level":"info","msg":"Sent response.","req_id":155,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.192673,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ed1d71d3-f0d5-48de-8252-a8bb33425f2d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/ed1d71d3-f0d5-48de-8252-a8bb33425f2d","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679707,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwN30.FVLEx7FmiAfW-1pJEw0vUbUqZfXKWh4jXJs48WMI6Fs"} 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":"cbda2690-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ceeceec-a7ed-4b7e-a15d-889788c90b4c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ceeceec-a7ed-4b7e-a15d-889788c90b4c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:05.502288654Z"}]},"request_id":"1ab099a3-3368-4fe1-bbac-7929cc75f34d","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679708.0403218} 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":"cbd9b160-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed1d71d3-f0d5-48de-8252-a8bb33425f2d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed1d71d3-f0d5-48de-8252-a8bb33425f2d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:05.564122732Z"}]},"request_id":"9ba1415b-8984-4617-a3ba-d18f59690a8f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679708.0417976} 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":"cbda2690-2406-11ef-9563-e3996e819f8c"},"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/5ceeceec-a7ed-4b7e-a15d-889788c90b4c? 200 28ms","method":"GET","requestID":"cbd9b160-2406-11ef-9563-e3996e819f8c","responseTime":28,"status":200,"url":"/devices/5ceeceec-a7ed-4b7e-a15d-889788c90b4c?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/ed1d71d3-f0d5-48de-8252-a8bb33425f2d? 200 27ms","method":"GET","requestID":"cbda2690-2406-11ef-9563-e3996e819f8c","responseTime":27,"status":200,"url":"/devices/ed1d71d3-f0d5-48de-8252-a8bb33425f2d?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":156,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:08Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":156,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.230249,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:08Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/5ceeceec-a7ed-4b7e-a15d-889788c90b4c","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5ceeceec-a7ed-4b7e-a15d-889788c90b4c","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cbdeba70-2406-11ef-9563-e3996e819f8c"},"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/5ceeceec-a7ed-4b7e-a15d-889788c90b4c/signaling 200 12ms","method":"POST","requestID":"cbdeba70-2406-11ef-9563-e3996e819f8c","responseTime":12,"status":200,"url":"/devices/5ceeceec-a7ed-4b7e-a15d-889788c90b4c/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":157,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:08Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":157,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.14347,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:08Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/ed1d71d3-f0d5-48de-8252-a8bb33425f2d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ed1d71d3-f0d5-48de-8252-a8bb33425f2d","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cbe17990-2406-11ef-9563-e3996e819f8c"},"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/ed1d71d3-f0d5-48de-8252-a8bb33425f2d/signaling 200 14ms","method":"POST","requestID":"cbe17990-2406-11ef-9563-e3996e819f8c","responseTime":14,"status":200,"url":"/devices/ed1d71d3-f0d5-48de-8252-a8bb33425f2d/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4e524722-ae06-46d2-a675-b79189ee7799"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4e524722-ae06-46d2-a675-b79189ee7799"},"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":"b3014ae7-efb1-4554-9eed-deb95f851294"},{"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":"c1d2adab-51ba-491a-87b0-0e5ecee28155"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"86550509-32d7-42b0-9b95-6d76e085ec55"}]},"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/5ceeceec-a7ed-4b7e-a15d-889788c90b4c"},{"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/ed1d71d3-f0d5-48de-8252-a8bb33425f2d"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":158,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:08Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":158,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.223018,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:08Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679707,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwN30.FVLEx7FmiAfW-1pJEw0vUbUqZfXKWh4jXJs48WMI6Fs"} 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":"cbe486d0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F4e524722-ae06-46d2-a675-b79189ee7799#owner@http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F4e524722-ae06-46d2-a675-b79189ee7799","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"25f1cffa-5147-4525-83ea-119c620ee587","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679708.3358986} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"691459c2-f29c-4557-9866-f6bfafa5038d","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679708.3363833} authorization-1 | {"level":"info","message":"POST /relations/update 200 307ms","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":"f230b866af7574429c924bc2b5421337"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":307}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"293c5f27-7039-4059-a2fa-54d6f353e29c","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679708.3386028} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fe50c2ad-4ea6-440a-86c8-cf504506eed4","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679708.3390384} authorization-1 | {"level":"info","message":"POST /relations/update 200 234ms","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":"cbe486d0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":234}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/4e524722-ae06-46d2-a675-b79189ee7799","user":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment-1 | {"level":"info","message":"POST /experiments? 201 735ms","method":"POST","requestID":"f230b866af7574429c924bc2b5421337","responseTime":735,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"06/Jun/2024:13:15:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1287","request_time":"0.740","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f230b866af7574429c924bc2b5421337"} 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/51bbc935-bb28-41ee-95df-eac162324d86'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/51bbc935-bb28-41ee-95df-eac162324d86'"} 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 269ms","method":"POST","requestID":"cbe486d0-2406-11ef-9563-e3996e819f8c","responseTime":269,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwOH0.kQbaovWzHn663mpPQNorfgTCGV6QsWz4D88UZwaCvOQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"b02a2f186001b1dcf534707777d1f1e0","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":159,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:08Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":159,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.823995,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5ceeceec-a7ed-4b7e-a15d-889788c90b4c","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/5ceeceec-a7ed-4b7e-a15d-889788c90b4c","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679708,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwOH0.kQbaovWzHn663mpPQNorfgTCGV6QsWz4D88UZwaCvOQ"} 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":"b02a2f186001b1dcf534707777d1f1e0"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ceeceec-a7ed-4b7e-a15d-889788c90b4c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ceeceec-a7ed-4b7e-a15d-889788c90b4c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:05.502288654Z"}]},"request_id":"b5f08d18-9d2e-456e-9cc0-226496c1af07","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679708.3845744} 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":"b02a2f186001b1dcf534707777d1f1e0"},"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":"06/Jun/2024:13:15:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5ceeceec-a7ed-4b7e-a15d-889788c90b4c? 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":"b02a2f186001b1dcf534707777d1f1e0"} device-1 | {"level":"info","message":"GET /devices/5ceeceec-a7ed-4b7e-a15d-889788c90b4c? 200 21ms","method":"GET","requestID":"b02a2f186001b1dcf534707777d1f1e0","responseTime":21,"status":200,"url":"/devices/5ceeceec-a7ed-4b7e-a15d-889788c90b4c?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwOH0.kQbaovWzHn663mpPQNorfgTCGV6QsWz4D88UZwaCvOQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c755ffd37b22893731973fe1c31f1fd0","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":160,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:08Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":160,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.673456,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ed1d71d3-f0d5-48de-8252-a8bb33425f2d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/ed1d71d3-f0d5-48de-8252-a8bb33425f2d","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679708,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwOH0.kQbaovWzHn663mpPQNorfgTCGV6QsWz4D88UZwaCvOQ"} 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":"c755ffd37b22893731973fe1c31f1fd0"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4e524722-ae06-46d2-a675-b79189ee7799"},"level":"info","message":"Successfully created peerconnections for experiment"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed1d71d3-f0d5-48de-8252-a8bb33425f2d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed1d71d3-f0d5-48de-8252-a8bb33425f2d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:05.564122732Z"}]},"request_id":"a4e5bc73-137d-414d-b175-b04983aa65ab","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679708.4019048} 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":"c755ffd37b22893731973fe1c31f1fd0"},"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":"06/Jun/2024:13:15:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ed1d71d3-f0d5-48de-8252-a8bb33425f2d? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c755ffd37b22893731973fe1c31f1fd0"} device-1 | {"level":"info","message":"GET /devices/ed1d71d3-f0d5-48de-8252-a8bb33425f2d? 200 12ms","method":"GET","requestID":"c755ffd37b22893731973fe1c31f1fd0","responseTime":12,"status":200,"url":"/devices/ed1d71d3-f0d5-48de-8252-a8bb33425f2d?"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/51bbc935-bb28-41ee-95df-eac162324d86' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"51bbc935-bb28-41ee-95df-eac162324d86","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e3659b3273026056204709d1faee42d6","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/5ceeceec-a7ed-4b7e-a15d-889788c90b4c"},{"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/ed1d71d3-f0d5-48de-8252-a8bb33425f2d"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/51bbc935-bb28-41ee-95df-eac162324d86"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 11ms","method":"POST","requestID":"e3659b3273026056204709d1faee42d6","responseTime":11,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15: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.015","http_referrer":"","http_user_agent":"node-fetch","requestID":"e3659b3273026056204709d1faee42d6"} device-1 | {"data":{"peerconnection":"51bbc935-bb28-41ee-95df-eac162324d86","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"51bbc935-bb28-41ee-95df-eac162324d86","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/51bbc935-bb28-41ee-95df-eac162324d86' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"51bbc935-bb28-41ee-95df-eac162324d86","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"9de365c4dd9a77f585c58e95f84a5478","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/5ceeceec-a7ed-4b7e-a15d-889788c90b4c"},{"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/ed1d71d3-f0d5-48de-8252-a8bb33425f2d"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/51bbc935-bb28-41ee-95df-eac162324d86"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":161,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:08Z"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","contextual_tuples":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F51bbc935-bb28-41ee-95df-eac162324d86","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"17f8f5d2-85fe-478b-8c84-9be5087b1847","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679708.791023} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":161,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.378502,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/51bbc935-bb28-41ee-95df-eac162324d86","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/51bbc935-bb28-41ee-95df-eac162324d86","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 8ms","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":"cc4dcff0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/51bbc935-bb28-41ee-95df-eac162324d86 200 15ms","method":"GET","requestID":"cc4dcff0-2406-11ef-9563-e3996e819f8c","responseTime":15,"status":200,"url":"/peerconnections/51bbc935-bb28-41ee-95df-eac162324d86"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwOH0.kQbaovWzHn663mpPQNorfgTCGV6QsWz4D88UZwaCvOQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d1e32b2d0c62fde3fd57ef55017863d3","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/4e524722-ae06-46d2-a675-b79189ee7799"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":162,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:08Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":162,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.261043,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/4e524722-ae06-46d2-a675-b79189ee7799","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/4e524722-ae06-46d2-a675-b79189ee7799","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679708,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwOH0.kQbaovWzHn663mpPQNorfgTCGV6QsWz4D88UZwaCvOQ"} 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":"d1e32b2d0c62fde3fd57ef55017863d3"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 336ms","method":"POST","requestID":"9de365c4dd9a77f585c58e95f84a5478","responseTime":336,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.340","http_referrer":"","http_user_agent":"node-fetch","requestID":"9de365c4dd9a77f585c58e95f84a5478"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/4e524722-ae06-46d2-a675-b79189ee7799"} gateway-1 | {"time_local":"06/Jun/2024:13:15:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/4e524722-ae06-46d2-a675-b79189ee7799 HTTP/1.1","status": "200","body_bytes_sent":"1360","request_time":"0.248","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d1e32b2d0c62fde3fd57ef55017863d3"} experiment-1 | {"level":"info","message":"GET /experiments/4e524722-ae06-46d2-a675-b79189ee7799 200 243ms","method":"GET","requestID":"d1e32b2d0c62fde3fd57ef55017863d3","responseTime":243,"status":200,"url":"/experiments/4e524722-ae06-46d2-a675-b79189ee7799"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwOX0.2EyGXV7zt0tjN2qk0DMe2MS4-4y3Z2oqUuFlbYBNXMk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"aa2654503e6812cce07752ddb5900c5e","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/4e524722-ae06-46d2-a675-b79189ee7799"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":163,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:09Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":163,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.250017,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:09Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/4e524722-ae06-46d2-a675-b79189ee7799","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/4e524722-ae06-46d2-a675-b79189ee7799","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679709,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwOX0.2EyGXV7zt0tjN2qk0DMe2MS4-4y3Z2oqUuFlbYBNXMk"} 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":"aa2654503e6812cce07752ddb5900c5e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4e524722-ae06-46d2-a675-b79189ee7799"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":164,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:09Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":164,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.774487,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:09Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/51bbc935-bb28-41ee-95df-eac162324d86","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:http://localhost/peerconnections/51bbc935-bb28-41ee-95df-eac162324d86","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679709,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwOX0.2EyGXV7zt0tjN2qk0DMe2MS4-4y3Z2oqUuFlbYBNXMk"} 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":"cc849760-2406-11ef-9563-e3996e819f8c"},"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/51bbc935-bb28-41ee-95df-eac162324d86' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/51bbc935-bb28-41ee-95df-eac162324d86' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"51bbc935-bb28-41ee-95df-eac162324d86","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F51bbc935-bb28-41ee-95df-eac162324d86': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F51bbc935-bb28-41ee-95df-eac162324d86","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"ae3cd468-fd03-4e10-8249-a5585506e876","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679709.1682673} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"6f7e04349a85abcab60b21d217a2e0cf","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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2da87720-fbe3-442f-8b81-3b3131997b70","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679709.168521} 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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/5ceeceec-a7ed-4b7e-a15d-889788c90b4c"},{"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/ed1d71d3-f0d5-48de-8252-a8bb33425f2d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/51bbc935-bb28-41ee-95df-eac162324d86"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"48e078e000b9f519f320d7381de75e88","responseTime":2,"status":200,"url":"/auth"} 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":"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":"cc849760-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} 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/5ceeceec-a7ed-4b7e-a15d-889788c90b4c"},{"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/ed1d71d3-f0d5-48de-8252-a8bb33425f2d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/51bbc935-bb28-41ee-95df-eac162324d86"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"51bbc935-bb28-41ee-95df-eac162324d86","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/51bbc935-bb28-41ee-95df-eac162324d86 204 309ms","method":"DELETE","requestID":"cc849760-2406-11ef-9563-e3996e819f8c","responseTime":309,"status":204,"url":"/peerconnections/51bbc935-bb28-41ee-95df-eac162324d86"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4e524722-ae06-46d2-a675-b79189ee7799"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F4e524722-ae06-46d2-a675-b79189ee7799': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F4e524722-ae06-46d2-a675-b79189ee7799","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"f56c0bb5-fed2-494f-88a2-e303c6057e06","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679709.494788} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ae6aba94-eb2b-43dd-b7a2-4be0e2d5849d","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679709.4953852} 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":"aa2654503e6812cce07752ddb5900c5e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":19}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/4e524722-ae06-46d2-a675-b79189ee7799"} gateway-1 | {"time_local":"06/Jun/2024:13:15:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/4e524722-ae06-46d2-a675-b79189ee7799 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.716","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"aa2654503e6812cce07752ddb5900c5e"} experiment-1 | {"level":"info","message":"DELETE /experiments/4e524722-ae06-46d2-a675-b79189ee7799 204 712ms","method":"DELETE","requestID":"aa2654503e6812cce07752ddb5900c5e","responseTime":712,"status":204,"url":"/experiments/4e524722-ae06-46d2-a675-b79189ee7799"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 671ms","method":"POST","requestID":"6f7e04349a85abcab60b21d217a2e0cf","responseTime":671,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.675","http_referrer":"","http_user_agent":"node-fetch","requestID":"6f7e04349a85abcab60b21d217a2e0cf"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 670ms","method":"POST","requestID":"48e078e000b9f519f320d7381de75e88","responseTime":670,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.676","http_referrer":"","http_user_agent":"node-fetch","requestID":"48e078e000b9f519f320d7381de75e88"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwOX0.2EyGXV7zt0tjN2qk0DMe2MS4-4y3Z2oqUuFlbYBNXMk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4c464b8a604ab028faa249afe0bf4b41","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"06/Jun/2024:13:15:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1998","request_time":"2.289","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"5a4fbdc04efe96b15d37a475098d96db"} gateway-1 | {"time_local":"06/Jun/2024:13:15:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1727","request_time":"2.303","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"99040c6260769548306acc74cb1ab6d2"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":165,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:09Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":165,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.964516,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:09Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679709,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcwOX0.2EyGXV7zt0tjN2qk0DMe2MS4-4y3Z2oqUuFlbYBNXMk"} 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":"4c464b8a604ab028faa249afe0bf4b41"},"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/ed1d71d3-f0d5-48de-8252-a8bb33425f2d' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/5ceeceec-a7ed-4b7e-a15d-889788c90b4c' 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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F435c7531-ba99-479a-a96c-2ee92ba42bc9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"92b2e9cb-f196-4b6c-abdc-20553ba08d6f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679710.142245} 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":"4c464b8a604ab028faa249afe0bf4b41"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2dbf91ff-328b-4c7b-91b9-f5e3682fbc97","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679710.1499093} 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":"4c464b8a604ab028faa249afe0bf4b41"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F435c7531-ba99-479a-a96c-2ee92ba42bc9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"3641acb4-55d4-4115-b65b-8ede562ea579","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679710.1641624} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"407a4d06-527f-4b19-8dca-211f7c9b1f3b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679710.1644971} 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":"4c464b8a604ab028faa249afe0bf4b41"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F435c7531-ba99-479a-a96c-2ee92ba42bc9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F435c7531-ba99-479a-a96c-2ee92ba42bc9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:10.164133116Z"}]},"request_id":"f31410e9-3e8b-4800-a453-4ed3efeb2d92","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679710.172651} 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":"4c464b8a604ab028faa249afe0bf4b41"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 333ms","method":"POST","requestID":"4c464b8a604ab028faa249afe0bf4b41","responseTime":333,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"06/Jun/2024:13:15:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.339","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4c464b8a604ab028faa249afe0bf4b41"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxMH0.0-PpYu4Ek-nW7FYrfIlvljP1NgPh5eAXNCoF0e-MzOk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"917c8899e46f5d531fb75f52b0306a26","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":166,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:10Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":166,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.114048,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:10Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679710,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxMH0.0-PpYu4Ek-nW7FYrfIlvljP1NgPh5eAXNCoF0e-MzOk"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","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":"917c8899e46f5d531fb75f52b0306a26"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe457a93b-03bc-48af-b353-836cd501e34f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"585d7ac8-d7a5-4472-9b62-40b167489a97","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679710.2178478} 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":"917c8899e46f5d531fb75f52b0306a26"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4029bf3f-59cb-4836-abd1-54e73eee8b03","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679710.2327929} 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":"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":"917c8899e46f5d531fb75f52b0306a26"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe457a93b-03bc-48af-b353-836cd501e34f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"d1ea1854-e59f-4859-994b-e56db9f54b13","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679710.2471347} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"25196748-d4de-4a04-9f55-374d1719304f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679710.2474647} 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":"917c8899e46f5d531fb75f52b0306a26"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe457a93b-03bc-48af-b353-836cd501e34f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe457a93b-03bc-48af-b353-836cd501e34f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:10.247108827Z"}]},"request_id":"4693b9fb-2e7f-4356-8f1e-be7d6f5474ac","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679710.2547703} 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":"917c8899e46f5d531fb75f52b0306a26"},"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":"06/Jun/2024:13:15:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.079","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"917c8899e46f5d531fb75f52b0306a26"} device-1 | {"level":"info","message":"POST /devices? 201 72ms","method":"POST","requestID":"917c8899e46f5d531fb75f52b0306a26","responseTime":72,"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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"c6636b10b31a117e2684790119f88020","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"06/Jun/2024:13:15:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/e457a93b-03bc-48af-b353-836cd501e34f/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":"c6636b10b31a117e2684790119f88020"} device-1 | {"level":"info","message":"OPTIONS /devices/e457a93b-03bc-48af-b353-836cd501e34f/websocket 200 2ms","method":"OPTIONS","requestID":"c6636b10b31a117e2684790119f88020","responseTime":2,"status":200,"url":"/devices/e457a93b-03bc-48af-b353-836cd501e34f/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxMn0.SLajycSqy40-9g1g894ah5OwmFzB7WwBe0ab1ZfQ5kU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"af126d62530acfc438da67953829b87f","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":167,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:12Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":167,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.175136,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:12Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/e457a93b-03bc-48af-b353-836cd501e34f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/e457a93b-03bc-48af-b353-836cd501e34f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679712,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxMn0.SLajycSqy40-9g1g894ah5OwmFzB7WwBe0ab1ZfQ5kU"} 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":"af126d62530acfc438da67953829b87f"},"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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"05fb83ba6bf00195b8f0e02bf2adb269","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"06/Jun/2024:13:15:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/435c7531-ba99-479a-a96c-2ee92ba42bc9/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":"05fb83ba6bf00195b8f0e02bf2adb269"} device-1 | {"level":"info","message":"OPTIONS /devices/435c7531-ba99-479a-a96c-2ee92ba42bc9/websocket 200 1ms","method":"OPTIONS","requestID":"05fb83ba6bf00195b8f0e02bf2adb269","responseTime":1,"status":200,"url":"/devices/435c7531-ba99-479a-a96c-2ee92ba42bc9/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxMn0.SLajycSqy40-9g1g894ah5OwmFzB7WwBe0ab1ZfQ5kU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a15471122a72acdf2b5f2b27d7cc1292","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"06/Jun/2024:13:15:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/e457a93b-03bc-48af-b353-836cd501e34f/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.040","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"af126d62530acfc438da67953829b87f"} device-1 | {"level":"info","message":"POST /devices/e457a93b-03bc-48af-b353-836cd501e34f/websocket 200 35ms","method":"POST","requestID":"af126d62530acfc438da67953829b87f","responseTime":35,"status":200,"url":"/devices/e457a93b-03bc-48af-b353-836cd501e34f/websocket"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":168,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:12Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":168,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.018424,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:12Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/435c7531-ba99-479a-a96c-2ee92ba42bc9","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/435c7531-ba99-479a-a96c-2ee92ba42bc9","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679712,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxMn0.SLajycSqy40-9g1g894ah5OwmFzB7WwBe0ab1ZfQ5kU"} 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":"a15471122a72acdf2b5f2b27d7cc1292"},"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":"06/Jun/2024:13:15:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/435c7531-ba99-479a-a96c-2ee92ba42bc9/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.027","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"a15471122a72acdf2b5f2b27d7cc1292"} device-1 | {"level":"info","message":"POST /devices/435c7531-ba99-479a-a96c-2ee92ba42bc9/websocket 200 21ms","method":"POST","requestID":"a15471122a72acdf2b5f2b27d7cc1292","responseTime":21,"status":200,"url":"/devices/435c7531-ba99-479a-a96c-2ee92ba42bc9/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/e457a93b-03bc-48af-b353-836cd501e34f' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/435c7531-ba99-479a-a96c-2ee92ba42bc9' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxMn0.SLajycSqy40-9g1g894ah5OwmFzB7WwBe0ab1ZfQ5kU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f061a5cea30722c179445748e8925917","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":169,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:12Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":169,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.220577,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/435c7531-ba99-479a-a96c-2ee92ba42bc9","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/435c7531-ba99-479a-a96c-2ee92ba42bc9","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679712,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxMn0.SLajycSqy40-9g1g894ah5OwmFzB7WwBe0ab1ZfQ5kU"} 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":"f061a5cea30722c179445748e8925917"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F435c7531-ba99-479a-a96c-2ee92ba42bc9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F435c7531-ba99-479a-a96c-2ee92ba42bc9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:10.164133116Z"}]},"request_id":"732d4500-54aa-4a74-aa7b-fa910f3523c5","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679712.3323648} 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":"f061a5cea30722c179445748e8925917"},"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":"06/Jun/2024:13:15:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/435c7531-ba99-479a-a96c-2ee92ba42bc9? 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":"f061a5cea30722c179445748e8925917"} device-1 | {"level":"info","message":"GET /devices/435c7531-ba99-479a-a96c-2ee92ba42bc9? 200 16ms","method":"GET","requestID":"f061a5cea30722c179445748e8925917","responseTime":16,"status":200,"url":"/devices/435c7531-ba99-479a-a96c-2ee92ba42bc9?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxMn0.SLajycSqy40-9g1g894ah5OwmFzB7WwBe0ab1ZfQ5kU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"d8afd1629a221e8f3fdf90a6d81cb903","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":170,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:12Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":170,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.147706,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e457a93b-03bc-48af-b353-836cd501e34f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/e457a93b-03bc-48af-b353-836cd501e34f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679712,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxMn0.SLajycSqy40-9g1g894ah5OwmFzB7WwBe0ab1ZfQ5kU"} 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":"d8afd1629a221e8f3fdf90a6d81cb903"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe457a93b-03bc-48af-b353-836cd501e34f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe457a93b-03bc-48af-b353-836cd501e34f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:10.247108827Z"}]},"request_id":"6dc65129-7618-4772-b08e-df188620629b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679712.356651} 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":"d8afd1629a221e8f3fdf90a6d81cb903"},"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":"06/Jun/2024:13:15:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e457a93b-03bc-48af-b353-836cd501e34f? 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":"d8afd1629a221e8f3fdf90a6d81cb903"} device-1 | {"level":"info","message":"GET /devices/e457a93b-03bc-48af-b353-836cd501e34f? 200 17ms","method":"GET","requestID":"d8afd1629a221e8f3fdf90a6d81cb903","responseTime":17,"status":200,"url":"/devices/e457a93b-03bc-48af-b353-836cd501e34f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxMn0.SLajycSqy40-9g1g894ah5OwmFzB7WwBe0ab1ZfQ5kU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3a16c2f782924e7fa6a8d2ed529967d5","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:36466","level":"info","msg":"Received request.","req_id":171,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:12Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":171,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.343966,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:12Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679712,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxMn0.SLajycSqy40-9g1g894ah5OwmFzB7WwBe0ab1ZfQ5kU"} 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":"3a16c2f782924e7fa6a8d2ed529967d5"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a4eb08bc-774f-4c46-b956-ae262b51b02a"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a4eb08bc-774f-4c46-b956-ae262b51b02a"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a4eb08bc-774f-4c46-b956-ae262b51b02a"},"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:36466","level":"info","msg":"Received request.","req_id":172,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:12Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":172,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.161985,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/435c7531-ba99-479a-a96c-2ee92ba42bc9","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/435c7531-ba99-479a-a96c-2ee92ba42bc9","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679712,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxMn0.SLajycSqy40-9g1g894ah5OwmFzB7WwBe0ab1ZfQ5kU"} 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":"ce9d6540-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:39492","level":"info","msg":"Received request.","req_id":173,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:12Z"} authorization-1 | {"client_addr":"127.0.0.1:39492","level":"info","msg":"Sent response.","req_id":173,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.835528,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e457a93b-03bc-48af-b353-836cd501e34f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/e457a93b-03bc-48af-b353-836cd501e34f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679712,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxMn0.SLajycSqy40-9g1g894ah5OwmFzB7WwBe0ab1ZfQ5kU"} 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":"ce9e0180-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F435c7531-ba99-479a-a96c-2ee92ba42bc9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F435c7531-ba99-479a-a96c-2ee92ba42bc9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:10.164133116Z"}]},"request_id":"efecde41-dad8-426d-a4b0-6a114d7292d0","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679712.6766655} 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":"ce9d6540-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe457a93b-03bc-48af-b353-836cd501e34f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe457a93b-03bc-48af-b353-836cd501e34f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:10.247108827Z"}]},"request_id":"0f12198c-a042-4e74-882c-8bd495567333","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679712.683554} 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":"ce9e0180-2406-11ef-9563-e3996e819f8c"},"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/435c7531-ba99-479a-a96c-2ee92ba42bc9? 200 32ms","method":"GET","requestID":"ce9d6540-2406-11ef-9563-e3996e819f8c","responseTime":32,"status":200,"url":"/devices/435c7531-ba99-479a-a96c-2ee92ba42bc9?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/e457a93b-03bc-48af-b353-836cd501e34f? 200 29ms","method":"GET","requestID":"ce9e0180-2406-11ef-9563-e3996e819f8c","responseTime":29,"status":200,"url":"/devices/e457a93b-03bc-48af-b353-836cd501e34f?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a4eb08bc-774f-4c46-b956-ae262b51b02a"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a4eb08bc-774f-4c46-b956-ae262b51b02a"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a4eb08bc-774f-4c46-b956-ae262b51b02a"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a4eb08bc-774f-4c46-b956-ae262b51b02a"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a4eb08bc-774f-4c46-b956-ae262b51b02a"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a4eb08bc-774f-4c46-b956-ae262b51b02a"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a4eb08bc-774f-4c46-b956-ae262b51b02a"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a4eb08bc-774f-4c46-b956-ae262b51b02a"},"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/a4eb08bc-774f-4c46-b956-ae262b51b02a"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":174,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:13Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":174,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.783427,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:13Z"} authorization-1 | {"client_addr":"127.0.0.1:39492","level":"info","msg":"Received request.","req_id":175,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:13Z"} authorization-1 | {"client_addr":"127.0.0.1:39492","level":"info","msg":"Sent response.","req_id":175,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.057016,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/435c7531-ba99-479a-a96c-2ee92ba42bc9","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/435c7531-ba99-479a-a96c-2ee92ba42bc9","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679712,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxMn0.SLajycSqy40-9g1g894ah5OwmFzB7WwBe0ab1ZfQ5kU"} 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":"cee93b50-2406-11ef-9563-e3996e819f8c"},"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/e457a93b-03bc-48af-b353-836cd501e34f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/e457a93b-03bc-48af-b353-836cd501e34f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679712,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxMn0.SLajycSqy40-9g1g894ah5OwmFzB7WwBe0ab1ZfQ5kU"} 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":"cee9fea0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F435c7531-ba99-479a-a96c-2ee92ba42bc9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F435c7531-ba99-479a-a96c-2ee92ba42bc9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:10.164133116Z"}]},"request_id":"ca2bfe8a-c332-4654-8f6d-d249e0d76d7c","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679713.1768775} 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":"cee93b50-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe457a93b-03bc-48af-b353-836cd501e34f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe457a93b-03bc-48af-b353-836cd501e34f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:10.247108827Z"}]},"request_id":"5aab76f0-6b8f-44f3-951e-8d9275911139","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679713.1806307} 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":"cee9fea0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa4eb08bc-774f-4c46-b956-ae262b51b02a#owner@http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa4eb08bc-774f-4c46-b956-ae262b51b02a","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"05af7f20-4999-411f-9f8f-c2515b813e1b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679713.1842396} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"64ab2cdb-e7ce-40c6-8d9d-c463a51a1e37","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679713.184948} 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":"3a16c2f782924e7fa6a8d2ed529967d5"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":21}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/435c7531-ba99-479a-a96c-2ee92ba42bc9? 200 36ms","method":"GET","requestID":"cee93b50-2406-11ef-9563-e3996e819f8c","responseTime":36,"status":200,"url":"/devices/435c7531-ba99-479a-a96c-2ee92ba42bc9?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/e457a93b-03bc-48af-b353-836cd501e34f? 200 32ms","method":"GET","requestID":"cee9fea0-2406-11ef-9563-e3996e819f8c","responseTime":32,"status":200,"url":"/devices/e457a93b-03bc-48af-b353-836cd501e34f?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/a4eb08bc-774f-4c46-b956-ae262b51b02a","user":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":176,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:13Z"} gateway-1 | {"time_local":"06/Jun/2024:13:15:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1287","request_time":"0.842","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3a16c2f782924e7fa6a8d2ed529967d5"} experiment-1 | {"level":"info","message":"POST /experiments? 201 835ms","method":"POST","requestID":"3a16c2f782924e7fa6a8d2ed529967d5","responseTime":835,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":176,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.067925,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:13Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/435c7531-ba99-479a-a96c-2ee92ba42bc9","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/435c7531-ba99-479a-a96c-2ee92ba42bc9","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ceefcb00-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxM30.zqEgF1t_vqJk9aXWPmqBjAPb6LIG3Tio1PWKCjlSOXo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"01f837b1131619db589216ed1b9c9267","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/435c7531-ba99-479a-a96c-2ee92ba42bc9/signaling 200 13ms","method":"POST","requestID":"ceefcb00-2406-11ef-9563-e3996e819f8c","responseTime":13,"status":200,"url":"/devices/435c7531-ba99-479a-a96c-2ee92ba42bc9/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":177,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:13Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":177,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.692327,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:13Z"} authorization-1 | {"client_addr":"127.0.0.1:39492","level":"info","msg":"Received request.","req_id":178,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/435c7531-ba99-479a-a96c-2ee92ba42bc9","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/435c7531-ba99-479a-a96c-2ee92ba42bc9","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679713,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxM30.zqEgF1t_vqJk9aXWPmqBjAPb6LIG3Tio1PWKCjlSOXo"} 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":"01f837b1131619db589216ed1b9c9267"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:39492","level":"info","msg":"Sent response.","req_id":178,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.761257,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:13Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/e457a93b-03bc-48af-b353-836cd501e34f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e457a93b-03bc-48af-b353-836cd501e34f","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cef23c00-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F435c7531-ba99-479a-a96c-2ee92ba42bc9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F435c7531-ba99-479a-a96c-2ee92ba42bc9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:10.164133116Z"}]},"request_id":"63c404f9-8f95-448a-92fb-5e46851488dd","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679713.2231662} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling 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":"01f837b1131619db589216ed1b9c9267"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"POST /devices/e457a93b-03bc-48af-b353-836cd501e34f/signaling 200 8ms","method":"POST","requestID":"cef23c00-2406-11ef-9563-e3996e819f8c","responseTime":8,"status":200,"url":"/devices/e457a93b-03bc-48af-b353-836cd501e34f/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a4eb08bc-774f-4c46-b956-ae262b51b02a"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a4eb08bc-774f-4c46-b956-ae262b51b02a"},"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":"7223b490-4250-4b6e-aa0b-445d645df3e1"},{"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":"6c11911f-d8e5-493a-a452-d8dbf0dd61eb"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"6ee04047-e177-4f1a-bd4a-c900bcb208b5"}]},"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/435c7531-ba99-479a-a96c-2ee92ba42bc9"},{"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/e457a93b-03bc-48af-b353-836cd501e34f"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"06/Jun/2024:13:15:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/435c7531-ba99-479a-a96c-2ee92ba42bc9? 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":"01f837b1131619db589216ed1b9c9267"} device-1 | {"level":"info","message":"GET /devices/435c7531-ba99-479a-a96c-2ee92ba42bc9? 200 14ms","method":"GET","requestID":"01f837b1131619db589216ed1b9c9267","responseTime":14,"status":200,"url":"/devices/435c7531-ba99-479a-a96c-2ee92ba42bc9?"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxM30.zqEgF1t_vqJk9aXWPmqBjAPb6LIG3Tio1PWKCjlSOXo","level":"info","message":"auth send jwt"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":179,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:13Z"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e63166f35de2f40d35ef2facef969a6c","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":179,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.732465,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:13Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679712,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxMn0.SLajycSqy40-9g1g894ah5OwmFzB7WwBe0ab1ZfQ5kU"} 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":"cef437d0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":180,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:13Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":180,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.753355,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e457a93b-03bc-48af-b353-836cd501e34f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/e457a93b-03bc-48af-b353-836cd501e34f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679713,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxM30.zqEgF1t_vqJk9aXWPmqBjAPb6LIG3Tio1PWKCjlSOXo"} 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":"e63166f35de2f40d35ef2facef969a6c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe457a93b-03bc-48af-b353-836cd501e34f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe457a93b-03bc-48af-b353-836cd501e34f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:10.247108827Z"}]},"request_id":"792fb755-9d55-476f-8cab-3acb2827d1cf","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679713.240885} 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":"e63166f35de2f40d35ef2facef969a6c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"cb16113b-da5a-432e-bc74-a21dc6121bee","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679713.2452564} 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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0f58d8b4-8445-44cf-b461-5a1d5236918f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679713.2454505} gateway-1 | {"time_local":"06/Jun/2024:13:15:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e457a93b-03bc-48af-b353-836cd501e34f? 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":"e63166f35de2f40d35ef2facef969a6c"} device-1 | {"level":"info","message":"GET /devices/e457a93b-03bc-48af-b353-836cd501e34f? 200 14ms","method":"GET","requestID":"e63166f35de2f40d35ef2facef969a6c","responseTime":14,"status":200,"url":"/devices/e457a93b-03bc-48af-b353-836cd501e34f?"} 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":"cef437d0-2406-11ef-9563-e3996e819f8c"},"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/648f07d4-877f-4e8c-9ea0-3366ffa42ce3'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/648f07d4-877f-4e8c-9ea0-3366ffa42ce3'"} 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 398ms","method":"POST","requestID":"cef437d0-2406-11ef-9563-e3996e819f8c","responseTime":398,"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/a4eb08bc-774f-4c46-b956-ae262b51b02a"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/648f07d4-877f-4e8c-9ea0-3366ffa42ce3' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"648f07d4-877f-4e8c-9ea0-3366ffa42ce3","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"9f00b5414bb2d888479c082e7c364ee5","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/435c7531-ba99-479a-a96c-2ee92ba42bc9"},{"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/e457a93b-03bc-48af-b353-836cd501e34f"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/648f07d4-877f-4e8c-9ea0-3366ffa42ce3"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"9f00b5414bb2d888479c082e7c364ee5","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15: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.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"9f00b5414bb2d888479c082e7c364ee5"} device-1 | {"data":{"peerconnection":"648f07d4-877f-4e8c-9ea0-3366ffa42ce3","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"648f07d4-877f-4e8c-9ea0-3366ffa42ce3","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/648f07d4-877f-4e8c-9ea0-3366ffa42ce3' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"648f07d4-877f-4e8c-9ea0-3366ffa42ce3","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"7ef1a5bf9dd4705310d56c18781180bc","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/435c7531-ba99-479a-a96c-2ee92ba42bc9"},{"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/e457a93b-03bc-48af-b353-836cd501e34f"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/648f07d4-877f-4e8c-9ea0-3366ffa42ce3"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":181,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:14Z"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","contextual_tuples":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F648f07d4-877f-4e8c-9ea0-3366ffa42ce3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"25157692-3391-4ddd-a867-2030d7ee2d26","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679714.1016114} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":181,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":4.469469,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/648f07d4-877f-4e8c-9ea0-3366ffa42ce3","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/648f07d4-877f-4e8c-9ea0-3366ffa42ce3","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 8ms","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":"cf780dd0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/648f07d4-877f-4e8c-9ea0-3366ffa42ce3 200 17ms","method":"GET","requestID":"cf780dd0-2406-11ef-9563-e3996e819f8c","responseTime":17,"status":200,"url":"/peerconnections/648f07d4-877f-4e8c-9ea0-3366ffa42ce3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxNH0.N5VtoMGmMZgFYsXaqs2Jn_Xv2EiqPcgbQopNxifO4k8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"0e4ae2574f7482d894913060750a16a0","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/a4eb08bc-774f-4c46-b956-ae262b51b02a"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":182,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:14Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":182,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.230202,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/a4eb08bc-774f-4c46-b956-ae262b51b02a","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/a4eb08bc-774f-4c46-b956-ae262b51b02a","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679714,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxNH0.N5VtoMGmMZgFYsXaqs2Jn_Xv2EiqPcgbQopNxifO4k8"} 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":"0e4ae2574f7482d894913060750a16a0"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 356ms","method":"POST","requestID":"7ef1a5bf9dd4705310d56c18781180bc","responseTime":356,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.360","http_referrer":"","http_user_agent":"node-fetch","requestID":"7ef1a5bf9dd4705310d56c18781180bc"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/a4eb08bc-774f-4c46-b956-ae262b51b02a"} gateway-1 | {"time_local":"06/Jun/2024:13:15:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/a4eb08bc-774f-4c46-b956-ae262b51b02a HTTP/1.1","status": "200","body_bytes_sent":"1360","request_time":"0.276","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0e4ae2574f7482d894913060750a16a0"} experiment-1 | {"level":"info","message":"GET /experiments/a4eb08bc-774f-4c46-b956-ae262b51b02a 200 269ms","method":"GET","requestID":"0e4ae2574f7482d894913060750a16a0","responseTime":269,"status":200,"url":"/experiments/a4eb08bc-774f-4c46-b956-ae262b51b02a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxNH0.N5VtoMGmMZgFYsXaqs2Jn_Xv2EiqPcgbQopNxifO4k8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"8a71fae56bc4d144e5b5f8f844ac37c5","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/a4eb08bc-774f-4c46-b956-ae262b51b02a"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":183,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:14Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":183,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":2.951244,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:14Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/a4eb08bc-774f-4c46-b956-ae262b51b02a","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/a4eb08bc-774f-4c46-b956-ae262b51b02a","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679714,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxNH0.N5VtoMGmMZgFYsXaqs2Jn_Xv2EiqPcgbQopNxifO4k8"} 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":"8a71fae56bc4d144e5b5f8f844ac37c5"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a4eb08bc-774f-4c46-b956-ae262b51b02a"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":184,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:14Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":184,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.238373,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:14Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/648f07d4-877f-4e8c-9ea0-3366ffa42ce3","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:http://localhost/peerconnections/648f07d4-877f-4e8c-9ea0-3366ffa42ce3","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679714,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxNH0.N5VtoMGmMZgFYsXaqs2Jn_Xv2EiqPcgbQopNxifO4k8"} 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":"cfb3b740-2406-11ef-9563-e3996e819f8c"},"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/648f07d4-877f-4e8c-9ea0-3366ffa42ce3' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/648f07d4-877f-4e8c-9ea0-3366ffa42ce3' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"648f07d4-877f-4e8c-9ea0-3366ffa42ce3","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"fa8ce2646b823af8a77d3ec0df5ef6a4","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F648f07d4-877f-4e8c-9ea0-3366ffa42ce3': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F648f07d4-877f-4e8c-9ea0-3366ffa42ce3","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"2f442d31-5cbd-4cd5-8bf8-738e09d42c3f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679714.5069451} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2b1197cd-40a9-4067-83f3-bc7ee12eb764","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679714.5071855} 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"db6e5e8db064015e937651eceb5c59d3","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":"cfb3b740-2406-11ef-9563-e3996e819f8c"},"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-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/435c7531-ba99-479a-a96c-2ee92ba42bc9"},{"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/e457a93b-03bc-48af-b353-836cd501e34f"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/648f07d4-877f-4e8c-9ea0-3366ffa42ce3"}}},"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/435c7531-ba99-479a-a96c-2ee92ba42bc9"},{"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/e457a93b-03bc-48af-b353-836cd501e34f"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/648f07d4-877f-4e8c-9ea0-3366ffa42ce3"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/648f07d4-877f-4e8c-9ea0-3366ffa42ce3 204 41ms","method":"DELETE","requestID":"cfb3b740-2406-11ef-9563-e3996e819f8c","responseTime":41,"status":204,"url":"/peerconnections/648f07d4-877f-4e8c-9ea0-3366ffa42ce3"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/e457a93b-03bc-48af-b353-836cd501e34f'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a4eb08bc-774f-4c46-b956-ae262b51b02a"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa4eb08bc-774f-4c46-b956-ae262b51b02a': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa4eb08bc-774f-4c46-b956-ae262b51b02a","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"2623e919-55d6-498e-8737-306f36180ed4","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679714.5554245} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0d78f0a1-31d8-4ed8-a926-7273e8adc08d","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679714.5556402} 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":"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":"8a71fae56bc4d144e5b5f8f844ac37c5"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/a4eb08bc-774f-4c46-b956-ae262b51b02a"} gateway-1 | {"time_local":"06/Jun/2024:13:15:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/a4eb08bc-774f-4c46-b956-ae262b51b02a HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.440","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8a71fae56bc4d144e5b5f8f844ac37c5"} experiment-1 | {"level":"info","message":"DELETE /experiments/a4eb08bc-774f-4c46-b956-ae262b51b02a 204 435ms","method":"DELETE","requestID":"8a71fae56bc4d144e5b5f8f844ac37c5","responseTime":435,"status":204,"url":"/experiments/a4eb08bc-774f-4c46-b956-ae262b51b02a"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 385ms","method":"POST","requestID":"fa8ce2646b823af8a77d3ec0df5ef6a4","responseTime":385,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.392","http_referrer":"","http_user_agent":"node-fetch","requestID":"fa8ce2646b823af8a77d3ec0df5ef6a4"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 385ms","method":"POST","requestID":"db6e5e8db064015e937651eceb5c59d3","responseTime":385,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.393","http_referrer":"","http_user_agent":"node-fetch","requestID":"db6e5e8db064015e937651eceb5c59d3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxNH0.N5VtoMGmMZgFYsXaqs2Jn_Xv2EiqPcgbQopNxifO4k8","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"postDevices called"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f60468a634ef49ca256b70ebcc7006de","responseTime":4,"status":200,"url":"/auth"} gateway-1 | {"time_local":"06/Jun/2024:13:15:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1727","request_time":"2.624","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"c6739f4aac2ad927638823e5cf1b1bff"} gateway-1 | {"time_local":"06/Jun/2024:13:15:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1998","request_time":"2.605","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"622ff63ba5854f92bc57d7d734d1bce6"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":185,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:14Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":185,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.764536,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:14Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679714,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxNH0.N5VtoMGmMZgFYsXaqs2Jn_Xv2EiqPcgbQopNxifO4k8"} 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":"f60468a634ef49ca256b70ebcc7006de"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/e457a93b-03bc-48af-b353-836cd501e34f' 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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf532a06-475a-44ad-aecd-9b7c7ca450c6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"2850f4f2-0eb1-42c2-b73f-564cb6b9c3a4","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679714.9212518} 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":"f60468a634ef49ca256b70ebcc7006de"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2debec8b-3ff8-4294-aedd-964ccde4c75e","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679714.9255605} 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":"f60468a634ef49ca256b70ebcc7006de"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/435c7531-ba99-479a-a96c-2ee92ba42bc9' closed"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf532a06-475a-44ad-aecd-9b7c7ca450c6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"d99c78af-cdb1-40d0-ac62-63907de6da38","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679715.2069855} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"10af6268-fe8c-4f2a-a68b-ce7d319df6ab","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679715.2074833} authorization-1 | {"level":"info","message":"POST /relations/update 200 285ms","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":"f60468a634ef49ca256b70ebcc7006de"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":285}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf532a06-475a-44ad-aecd-9b7c7ca450c6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf532a06-475a-44ad-aecd-9b7c7ca450c6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:15.206956256Z"}]},"request_id":"badbdf25-18b7-41f2-92ad-87c223d7ca2b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679715.2150784} 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":"f60468a634ef49ca256b70ebcc7006de"},"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":"06/Jun/2024:13:15:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.322","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f60468a634ef49ca256b70ebcc7006de"} device-1 | {"level":"info","message":"POST /devices? 201 316ms","method":"POST","requestID":"f60468a634ef49ca256b70ebcc7006de","responseTime":316,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxNX0.aeLUJ4UPo-yjy679rIWeq3m-Yy3m7fz-QYzXzPfyW20","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a6295fcb2ac3c9c2472ffc1f33013470","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":186,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:15Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":186,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.226481,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:15Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679715,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxNX0.aeLUJ4UPo-yjy679rIWeq3m-Yy3m7fz-QYzXzPfyW20"} 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":"a6295fcb2ac3c9c2472ffc1f33013470"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F560e62ee-c503-4205-b243-b19a31c5e466","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"bf13015a-3228-44c1-add1-0d7024663706","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679715.251491} 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":"a6295fcb2ac3c9c2472ffc1f33013470"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"45fda222-f9cf-40af-afd4-a9d164ec40ac","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679715.259396} 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":"a6295fcb2ac3c9c2472ffc1f33013470"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F560e62ee-c503-4205-b243-b19a31c5e466","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"5f211d26-2a5e-433a-8da8-a92c06eabdd3","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679715.2715182} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f0817e0f-d950-402c-9839-68ddc1753645","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679715.2718823} 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":"a6295fcb2ac3c9c2472ffc1f33013470"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F560e62ee-c503-4205-b243-b19a31c5e466","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F560e62ee-c503-4205-b243-b19a31c5e466","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:15.271487947Z"}]},"request_id":"ab387c4d-223e-4482-ad20-83cee83b7dbd","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679715.2807674} 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":"a6295fcb2ac3c9c2472ffc1f33013470"},"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":"06/Jun/2024:13:15:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.063","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a6295fcb2ac3c9c2472ffc1f33013470"} device-1 | {"level":"info","message":"POST /devices? 201 57ms","method":"POST","requestID":"a6295fcb2ac3c9c2472ffc1f33013470","responseTime":57,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxNX0.aeLUJ4UPo-yjy679rIWeq3m-Yy3m7fz-QYzXzPfyW20","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1e450d70984d0aa1574c12d8dfe0c2ae","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":187,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:15Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":187,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.121684,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:15Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/560e62ee-c503-4205-b243-b19a31c5e466","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/560e62ee-c503-4205-b243-b19a31c5e466","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679715,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxNX0.aeLUJ4UPo-yjy679rIWeq3m-Yy3m7fz-QYzXzPfyW20"} 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":"1e450d70984d0aa1574c12d8dfe0c2ae"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F560e62ee-c503-4205-b243-b19a31c5e466","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F560e62ee-c503-4205-b243-b19a31c5e466","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:15.271487947Z"}]},"request_id":"f0100b91-2a92-4749-b926-c0d3b76a2e22","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679715.7738361} 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":"1e450d70984d0aa1574c12d8dfe0c2ae"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"67f293e2-2940-4e6d-a68e-2d3ba31f23cb","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679715.7826314} 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":"1e450d70984d0aa1574c12d8dfe0c2ae"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F560e62ee-c503-4205-b243-b19a31c5e466","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F560e62ee-c503-4205-b243-b19a31c5e466","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:15.271487947Z"}]},"request_id":"e16519a4-e4e6-482b-8304-2d2ba73d3be6","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679715.8030586} 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":"1e450d70984d0aa1574c12d8dfe0c2ae"},"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":"06/Jun/2024:13:15:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/560e62ee-c503-4205-b243-b19a31c5e466 HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.054","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"1e450d70984d0aa1574c12d8dfe0c2ae"} device-1 | {"level":"info","message":"PATCH /devices/560e62ee-c503-4205-b243-b19a31c5e466 200 49ms","method":"PATCH","requestID":"1e450d70984d0aa1574c12d8dfe0c2ae","responseTime":49,"status":200,"url":"/devices/560e62ee-c503-4205-b243-b19a31c5e466"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxNX0.aeLUJ4UPo-yjy679rIWeq3m-Yy3m7fz-QYzXzPfyW20","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ee91e40ec6673256eeb24131aa72aa37","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":188,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:15Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":188,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.061132,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:15Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/560e62ee-c503-4205-b243-b19a31c5e466","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/560e62ee-c503-4205-b243-b19a31c5e466","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679715,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxNX0.aeLUJ4UPo-yjy679rIWeq3m-Yy3m7fz-QYzXzPfyW20"} 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":"ee91e40ec6673256eeb24131aa72aa37"},"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":"06/Jun/2024:13:15:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/560e62ee-c503-4205-b243-b19a31c5e466/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":"ee91e40ec6673256eeb24131aa72aa37"} device-1 | {"level":"info","message":"POST /devices/560e62ee-c503-4205-b243-b19a31c5e466/websocket 200 23ms","method":"POST","requestID":"ee91e40ec6673256eeb24131aa72aa37","responseTime":23,"status":200,"url":"/devices/560e62ee-c503-4205-b243-b19a31c5e466/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/560e62ee-c503-4205-b243-b19a31c5e466' 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f05de27fc28063b687c2e7494e4ffae1","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"06/Jun/2024:13:15:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/cf532a06-475a-44ad-aecd-9b7c7ca450c6/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":"f05de27fc28063b687c2e7494e4ffae1"} device-1 | {"level":"info","message":"OPTIONS /devices/cf532a06-475a-44ad-aecd-9b7c7ca450c6/websocket 200 2ms","method":"OPTIONS","requestID":"f05de27fc28063b687c2e7494e4ffae1","responseTime":2,"status":200,"url":"/devices/cf532a06-475a-44ad-aecd-9b7c7ca450c6/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxN30.OW1snlr4zT6LVczPen-UiCh3nfnvbllpLRe_0sVOHK0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"7a9093bd9fc1853dd6ecbed4c4b0082e","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":189,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:17Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":189,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.360162,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:17Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/cf532a06-475a-44ad-aecd-9b7c7ca450c6","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/cf532a06-475a-44ad-aecd-9b7c7ca450c6","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679717,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxN30.OW1snlr4zT6LVczPen-UiCh3nfnvbllpLRe_0sVOHK0"} 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":"7a9093bd9fc1853dd6ecbed4c4b0082e"},"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":"06/Jun/2024:13:15:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/cf532a06-475a-44ad-aecd-9b7c7ca450c6/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":"7a9093bd9fc1853dd6ecbed4c4b0082e"} device-1 | {"level":"info","message":"POST /devices/cf532a06-475a-44ad-aecd-9b7c7ca450c6/websocket 200 39ms","method":"POST","requestID":"7a9093bd9fc1853dd6ecbed4c4b0082e","responseTime":39,"status":200,"url":"/devices/cf532a06-475a-44ad-aecd-9b7c7ca450c6/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/cf532a06-475a-44ad-aecd-9b7c7ca450c6' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxN30.OW1snlr4zT6LVczPen-UiCh3nfnvbllpLRe_0sVOHK0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f6703f15478752155c92dc3476807597","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":190,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:17Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":190,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.12156,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cf532a06-475a-44ad-aecd-9b7c7ca450c6","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/cf532a06-475a-44ad-aecd-9b7c7ca450c6","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679717,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxN30.OW1snlr4zT6LVczPen-UiCh3nfnvbllpLRe_0sVOHK0"} 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":"f6703f15478752155c92dc3476807597"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf532a06-475a-44ad-aecd-9b7c7ca450c6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf532a06-475a-44ad-aecd-9b7c7ca450c6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:15.206956256Z"}]},"request_id":"b9f72f71-48bd-4c0f-b70e-ac156259c997","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679717.3609157} 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":"f6703f15478752155c92dc3476807597"},"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":"06/Jun/2024:13:15:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cf532a06-475a-44ad-aecd-9b7c7ca450c6? 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":"f6703f15478752155c92dc3476807597"} device-1 | {"level":"info","message":"GET /devices/cf532a06-475a-44ad-aecd-9b7c7ca450c6? 200 19ms","method":"GET","requestID":"f6703f15478752155c92dc3476807597","responseTime":19,"status":200,"url":"/devices/cf532a06-475a-44ad-aecd-9b7c7ca450c6?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxN30.OW1snlr4zT6LVczPen-UiCh3nfnvbllpLRe_0sVOHK0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"8d80dd1c8e79e4657d5b1358f22e092f","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":191,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:17Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":191,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.34367,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/560e62ee-c503-4205-b243-b19a31c5e466","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/560e62ee-c503-4205-b243-b19a31c5e466","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679717,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxN30.OW1snlr4zT6LVczPen-UiCh3nfnvbllpLRe_0sVOHK0"} 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":"8d80dd1c8e79e4657d5b1358f22e092f"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F560e62ee-c503-4205-b243-b19a31c5e466","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F560e62ee-c503-4205-b243-b19a31c5e466","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:15.271487947Z"}]},"request_id":"59c9fb8d-918f-4ad0-a650-c6e65ac0b563","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679717.3907926} 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":"8d80dd1c8e79e4657d5b1358f22e092f"},"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":"06/Jun/2024:13:15:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/560e62ee-c503-4205-b243-b19a31c5e466? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.028","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8d80dd1c8e79e4657d5b1358f22e092f"} device-1 | {"level":"info","message":"GET /devices/560e62ee-c503-4205-b243-b19a31c5e466? 200 23ms","method":"GET","requestID":"8d80dd1c8e79e4657d5b1358f22e092f","responseTime":23,"status":200,"url":"/devices/560e62ee-c503-4205-b243-b19a31c5e466?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxN30.OW1snlr4zT6LVczPen-UiCh3nfnvbllpLRe_0sVOHK0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c19c686b748f216547edb9e3ad5e12a7","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:36466","level":"info","msg":"Received request.","req_id":192,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:17Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":192,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.916495,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:17Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679717,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxN30.OW1snlr4zT6LVczPen-UiCh3nfnvbllpLRe_0sVOHK0"} 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":"c19c686b748f216547edb9e3ad5e12a7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa"},"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:36466","level":"info","msg":"Received request.","req_id":193,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:17Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":193,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.672696,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cf532a06-475a-44ad-aecd-9b7c7ca450c6","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/cf532a06-475a-44ad-aecd-9b7c7ca450c6","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679717,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxN30.OW1snlr4zT6LVczPen-UiCh3nfnvbllpLRe_0sVOHK0"} 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":"d199dc60-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:39498","level":"info","msg":"Received request.","req_id":194,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:17Z"} authorization-1 | {"client_addr":"127.0.0.1:39498","level":"info","msg":"Sent response.","req_id":194,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.612723,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/560e62ee-c503-4205-b243-b19a31c5e466","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/560e62ee-c503-4205-b243-b19a31c5e466","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679717,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxN30.OW1snlr4zT6LVczPen-UiCh3nfnvbllpLRe_0sVOHK0"} 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":"d19a5190-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf532a06-475a-44ad-aecd-9b7c7ca450c6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf532a06-475a-44ad-aecd-9b7c7ca450c6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:15.206956256Z"}]},"request_id":"34e5a1f2-bfee-417d-8d95-f30286af3521","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679717.686315} 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":"d199dc60-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F560e62ee-c503-4205-b243-b19a31c5e466","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F560e62ee-c503-4205-b243-b19a31c5e466","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:15.271487947Z"}]},"request_id":"8cf43886-391b-4bd0-951d-378a0f86ba42","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679717.692572} device-1 | {"level":"info","message":"getDevicesByDeviceId 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":"d19a5190-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"GET /devices/cf532a06-475a-44ad-aecd-9b7c7ca450c6? 200 25ms","method":"GET","requestID":"d199dc60-2406-11ef-9563-e3996e819f8c","responseTime":25,"status":200,"url":"/devices/cf532a06-475a-44ad-aecd-9b7c7ca450c6?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/560e62ee-c503-4205-b243-b19a31c5e466? 200 27ms","method":"GET","requestID":"d19a5190-2406-11ef-9563-e3996e819f8c","responseTime":27,"status":200,"url":"/devices/560e62ee-c503-4205-b243-b19a31c5e466?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa"},"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:36466","level":"info","msg":"Received request.","req_id":195,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:17Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":195,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.326129,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:17Z"} authorization-1 | {"client_addr":"127.0.0.1:39498","level":"info","msg":"Received request.","req_id":196,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:17Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cf532a06-475a-44ad-aecd-9b7c7ca450c6","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/cf532a06-475a-44ad-aecd-9b7c7ca450c6","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679717,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxN30.OW1snlr4zT6LVczPen-UiCh3nfnvbllpLRe_0sVOHK0"} 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":"d1a80d30-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:39498","level":"info","msg":"Sent response.","req_id":196,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.346678,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/560e62ee-c503-4205-b243-b19a31c5e466","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/560e62ee-c503-4205-b243-b19a31c5e466","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679717,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxN30.OW1snlr4zT6LVczPen-UiCh3nfnvbllpLRe_0sVOHK0"} 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":"d1a88260-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf532a06-475a-44ad-aecd-9b7c7ca450c6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf532a06-475a-44ad-aecd-9b7c7ca450c6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:15.206956256Z"}]},"request_id":"53bda45c-b0a8-48c6-897e-f07b2a8d5576","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679717.7814276} 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":"d1a80d30-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F560e62ee-c503-4205-b243-b19a31c5e466","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F560e62ee-c503-4205-b243-b19a31c5e466","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:15.271487947Z"}]},"request_id":"d349a83a-3e5d-4757-be22-b3dac2021b79","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679717.7834978} 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":"d1a88260-2406-11ef-9563-e3996e819f8c"},"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/cf532a06-475a-44ad-aecd-9b7c7ca450c6? 200 29ms","method":"GET","requestID":"d1a80d30-2406-11ef-9563-e3996e819f8c","responseTime":29,"status":200,"url":"/devices/cf532a06-475a-44ad-aecd-9b7c7ca450c6?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/560e62ee-c503-4205-b243-b19a31c5e466? 200 28ms","method":"GET","requestID":"d1a88260-2406-11ef-9563-e3996e819f8c","responseTime":28,"status":200,"url":"/devices/560e62ee-c503-4205-b243-b19a31c5e466?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":197,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:17Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":197,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":2.405823,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:17Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/cf532a06-475a-44ad-aecd-9b7c7ca450c6","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cf532a06-475a-44ad-aecd-9b7c7ca450c6","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d1ad6460-2406-11ef-9563-e3996e819f8c"},"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/cf532a06-475a-44ad-aecd-9b7c7ca450c6/signaling 200 14ms","method":"POST","requestID":"d1ad6460-2406-11ef-9563-e3996e819f8c","responseTime":14,"status":200,"url":"/devices/cf532a06-475a-44ad-aecd-9b7c7ca450c6/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":198,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:17Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":198,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.473842,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:17Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/560e62ee-c503-4205-b243-b19a31c5e466","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/560e62ee-c503-4205-b243-b19a31c5e466","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d1b02380-2406-11ef-9563-e3996e819f8c"},"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/560e62ee-c503-4205-b243-b19a31c5e466/signaling 200 14ms","method":"POST","requestID":"d1b02380-2406-11ef-9563-e3996e819f8c","responseTime":14,"status":200,"url":"/devices/560e62ee-c503-4205-b243-b19a31c5e466/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa"},"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":"9449b5d1-fc5b-4891-a57a-a839d40ccfb3"},{"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":"228ae29a-a714-44d1-84ff-aca096d28331"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"43de3da0-6b9b-4b7a-b80c-70a41c756af6"}]},"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/cf532a06-475a-44ad-aecd-9b7c7ca450c6"},{"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/560e62ee-c503-4205-b243-b19a31c5e466"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":199,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:17Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":199,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.378235,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:17Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679717,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxN30.OW1snlr4zT6LVczPen-UiCh3nfnvbllpLRe_0sVOHK0"} 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":"d1b309b0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fadb2d82b-9df6-4b7c-a809-fa8be7a0a9fa#owner@http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fadb2d82b-9df6-4b7c-a809-fa8be7a0a9fa","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"92b43f58-8eaf-4f6e-a602-378c92f172fb","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679718.0467036} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fc35883e-420a-4975-96b1-2f2762183875","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679718.0470514} authorization-1 | {"level":"info","message":"POST /relations/update 200 276ms","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":"c19c686b748f216547edb9e3ad5e12a7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":276}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"07cbbd2d-74de-452d-a099-a460c4ff3579","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679718.0492659} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b1af4c1c-19c9-4e29-95c9-f70b8b06439b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679718.049934} authorization-1 | {"level":"info","message":"POST /relations/update 200 203ms","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":"d1b309b0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":203}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa","user":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment-1 | {"level":"info","message":"POST /experiments? 201 658ms","method":"POST","requestID":"c19c686b748f216547edb9e3ad5e12a7","responseTime":658,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"06/Jun/2024:13:15:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.664","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c19c686b748f216547edb9e3ad5e12a7"} 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/c5fac331-d353-4f10-8578-f5747089aa2f'"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxOH0.wa5KSc4bUC590t_G1nIwRQ7TtL4Ai3SJ85yiJjY-cg8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"f22cf75b6f53619e8f9846e346da57e4","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/c5fac331-d353-4f10-8578-f5747089aa2f'"} 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 240ms","method":"POST","requestID":"d1b309b0-2406-11ef-9563-e3996e819f8c","responseTime":240,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":200,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:18Z"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":200,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.536668,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cf532a06-475a-44ad-aecd-9b7c7ca450c6","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/cf532a06-475a-44ad-aecd-9b7c7ca450c6","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679718,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxOH0.wa5KSc4bUC590t_G1nIwRQ7TtL4Ai3SJ85yiJjY-cg8"} 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":"f22cf75b6f53619e8f9846e346da57e4"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf532a06-475a-44ad-aecd-9b7c7ca450c6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcf532a06-475a-44ad-aecd-9b7c7ca450c6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:15.206956256Z"}]},"request_id":"919de94f-3579-4bcb-93a7-3ac58bfd05ab","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679718.0906606} 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":"f22cf75b6f53619e8f9846e346da57e4"},"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":"06/Jun/2024:13:15:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cf532a06-475a-44ad-aecd-9b7c7ca450c6? 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":"f22cf75b6f53619e8f9846e346da57e4"} device-1 | {"level":"info","message":"GET /devices/cf532a06-475a-44ad-aecd-9b7c7ca450c6? 200 21ms","method":"GET","requestID":"f22cf75b6f53619e8f9846e346da57e4","responseTime":21,"status":200,"url":"/devices/cf532a06-475a-44ad-aecd-9b7c7ca450c6?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxOH0.wa5KSc4bUC590t_G1nIwRQ7TtL4Ai3SJ85yiJjY-cg8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f3df1e760178a1370223853c9672356b","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":201,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:18Z"} device-1 | {"data":{"peerconnection":"c5fac331-d353-4f10-8578-f5747089aa2f","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":201,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.853724,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/560e62ee-c503-4205-b243-b19a31c5e466","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/560e62ee-c503-4205-b243-b19a31c5e466","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679718,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxOH0.wa5KSc4bUC590t_G1nIwRQ7TtL4Ai3SJ85yiJjY-cg8"} 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":"f3df1e760178a1370223853c9672356b"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F560e62ee-c503-4205-b243-b19a31c5e466","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F560e62ee-c503-4205-b243-b19a31c5e466","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:15.271487947Z"}]},"request_id":"01898dd8-6dfa-48ed-bd06-355bd8022361","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679718.1113403} 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":"f3df1e760178a1370223853c9672356b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"06/Jun/2024:13:15:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/560e62ee-c503-4205-b243-b19a31c5e466? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f3df1e760178a1370223853c9672356b"} device-1 | {"level":"info","message":"GET /devices/560e62ee-c503-4205-b243-b19a31c5e466? 200 13ms","method":"GET","requestID":"f3df1e760178a1370223853c9672356b","responseTime":13,"status":200,"url":"/devices/560e62ee-c503-4205-b243-b19a31c5e466?"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/c5fac331-d353-4f10-8578-f5747089aa2f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c5fac331-d353-4f10-8578-f5747089aa2f","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c3497b98b38d5f44f25719b274546063","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/cf532a06-475a-44ad-aecd-9b7c7ca450c6"},{"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/560e62ee-c503-4205-b243-b19a31c5e466"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/c5fac331-d353-4f10-8578-f5747089aa2f"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"c3497b98b38d5f44f25719b274546063","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:18 +0000","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":"c3497b98b38d5f44f25719b274546063"} device-1 | {"data":{"peerconnection":"c5fac331-d353-4f10-8578-f5747089aa2f","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"c5fac331-d353-4f10-8578-f5747089aa2f","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/c5fac331-d353-4f10-8578-f5747089aa2f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c5fac331-d353-4f10-8578-f5747089aa2f","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"2ec0f7de8c1b6e96372cac6b3444fcb1","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/cf532a06-475a-44ad-aecd-9b7c7ca450c6"},{"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/560e62ee-c503-4205-b243-b19a31c5e466"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/c5fac331-d353-4f10-8578-f5747089aa2f"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":202,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:18Z"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","contextual_tuples":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc5fac331-d353-4f10-8578-f5747089aa2f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f650cad4-ca48-4257-888b-687a681d27f6","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679718.4991517} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":202,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":4.400074,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/c5fac331-d353-4f10-8578-f5747089aa2f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/c5fac331-d353-4f10-8578-f5747089aa2f","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 8ms","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":"d21749c0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/c5fac331-d353-4f10-8578-f5747089aa2f 200 13ms","method":"GET","requestID":"d21749c0-2406-11ef-9563-e3996e819f8c","responseTime":13,"status":200,"url":"/peerconnections/c5fac331-d353-4f10-8578-f5747089aa2f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 44ms","method":"POST","requestID":"2ec0f7de8c1b6e96372cac6b3444fcb1","responseTime":44,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch","requestID":"2ec0f7de8c1b6e96372cac6b3444fcb1"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxOH0.wa5KSc4bUC590t_G1nIwRQ7TtL4Ai3SJ85yiJjY-cg8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"44f00056ab1cdd6f6384532711543d79","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":203,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:18Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":203,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.91452,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679718,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxOH0.wa5KSc4bUC590t_G1nIwRQ7TtL4Ai3SJ85yiJjY-cg8"} 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":"44f00056ab1cdd6f6384532711543d79"},"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/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa"} gateway-1 | {"time_local":"06/Jun/2024:13:15:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa HTTP/1.1","status": "200","body_bytes_sent":"1364","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"44f00056ab1cdd6f6384532711543d79"} experiment-1 | {"level":"info","message":"GET /experiments/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa 200 15ms","method":"GET","requestID":"44f00056ab1cdd6f6384532711543d79","responseTime":15,"status":200,"url":"/experiments/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxOH0.wa5KSc4bUC590t_G1nIwRQ7TtL4Ai3SJ85yiJjY-cg8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"6af40991e8c947b9281a5510d8f41b10","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":204,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:18Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":204,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.273388,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:18Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679718,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxOH0.wa5KSc4bUC590t_G1nIwRQ7TtL4Ai3SJ85yiJjY-cg8"} 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":"6af40991e8c947b9281a5510d8f41b10"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":205,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:18Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":205,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.45301,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:18Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/c5fac331-d353-4f10-8578-f5747089aa2f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:http://localhost/peerconnections/c5fac331-d353-4f10-8578-f5747089aa2f","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679718,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxOH0.wa5KSc4bUC590t_G1nIwRQ7TtL4Ai3SJ85yiJjY-cg8"} 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":"d22b1fe0-2406-11ef-9563-e3996e819f8c"},"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/c5fac331-d353-4f10-8578-f5747089aa2f' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/c5fac331-d353-4f10-8578-f5747089aa2f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c5fac331-d353-4f10-8578-f5747089aa2f","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc5fac331-d353-4f10-8578-f5747089aa2f': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc5fac331-d353-4f10-8578-f5747089aa2f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"047cd226-5b41-4730-a030-8b765ddbe460","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679718.648781} 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"822e46cbc5d6887cb1b9ecda390a53f7","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"047695bb-0f66-4e97-b28f-0d3016f5b933","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679718.649485} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"088a0dafec39dcce8de42f6242134a54","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/cf532a06-475a-44ad-aecd-9b7c7ca450c6"},{"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/560e62ee-c503-4205-b243-b19a31c5e466"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/c5fac331-d353-4f10-8578-f5747089aa2f"}}},"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":"connected","url":"http://localhost/devices/cf532a06-475a-44ad-aecd-9b7c7ca450c6"},{"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/560e62ee-c503-4205-b243-b19a31c5e466"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/c5fac331-d353-4f10-8578-f5747089aa2f"}}},"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":"d22b1fe0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} device-1 | {"data":{"peerconnection":"c5fac331-d353-4f10-8578-f5747089aa2f","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/c5fac331-d353-4f10-8578-f5747089aa2f 204 232ms","method":"DELETE","requestID":"d22b1fe0-2406-11ef-9563-e3996e819f8c","responseTime":232,"status":204,"url":"/peerconnections/c5fac331-d353-4f10-8578-f5747089aa2f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fadb2d82b-9df6-4b7c-a809-fa8be7a0a9fa': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fadb2d82b-9df6-4b7c-a809-fa8be7a0a9fa","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"ab223596-01a5-4e35-abb5-962c82679a20","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679718.8927054} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1bb25aa1-4cde-45d1-85cc-9b87baf3475f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679718.8932838} 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":"6af40991e8c947b9281a5510d8f41b10"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa"} gateway-1 | {"time_local":"06/Jun/2024:13:15:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.625","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6af40991e8c947b9281a5510d8f41b10"} gateway-1 | {"time_local":"06/Jun/2024:13:15:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1678","request_time":"3.385","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"4bd0195753381a1f418a590d97b57a3c"} experiment-1 | {"level":"info","message":"DELETE /experiments/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa 204 621ms","method":"DELETE","requestID":"6af40991e8c947b9281a5510d8f41b10","responseTime":621,"status":204,"url":"/experiments/adb2d82b-9df6-4b7c-a809-fa8be7a0a9fa"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 576ms","method":"POST","requestID":"822e46cbc5d6887cb1b9ecda390a53f7","responseTime":576,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 576ms","method":"POST","requestID":"088a0dafec39dcce8de42f6242134a54","responseTime":576,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.582","http_referrer":"","http_user_agent":"node-fetch","requestID":"822e46cbc5d6887cb1b9ecda390a53f7"} gateway-1 | {"time_local":"06/Jun/2024:13:15:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.583","http_referrer":"","http_user_agent":"node-fetch","requestID":"088a0dafec39dcce8de42f6242134a54"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxOX0.W2e_2-K-jiw9XfkSAD6FTF64eu1Qx0xIHLV60n6uQcA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"92757538a71a50da00ab82e3e16364ca","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"06/Jun/2024:13:15:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1762","request_time":"1.910","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"97304f7e6bea94c8a6e3bbe7d839d370"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":206,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:19Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":206,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.909399,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:19Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679719,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxOX0.W2e_2-K-jiw9XfkSAD6FTF64eu1Qx0xIHLV60n6uQcA"} 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":"92757538a71a50da00ab82e3e16364ca"},"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/560e62ee-c503-4205-b243-b19a31c5e466' 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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F783028c1-3a01-439c-9451-cbc95cf20af1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"5df1f12b-f843-4c59-bc22-820335e2ccf3","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679719.5111864} 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":"92757538a71a50da00ab82e3e16364ca"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/cf532a06-475a-44ad-aecd-9b7c7ca450c6' 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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d8a418dc-4cc9-4622-b11b-920cf1444018","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679719.5194957} 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":"92757538a71a50da00ab82e3e16364ca"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F783028c1-3a01-439c-9451-cbc95cf20af1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"8f53a364-6483-4a8b-96a7-a89e25e4f7c0","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679719.534337} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"627e01eb-38ef-44fb-a36d-387d922175a4","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679719.534607} 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":"92757538a71a50da00ab82e3e16364ca"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F783028c1-3a01-439c-9451-cbc95cf20af1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F783028c1-3a01-439c-9451-cbc95cf20af1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:19.534298892Z"}]},"request_id":"89875331-4d26-4638-a27f-fd238b7dfc1f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679719.5416737} 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":"92757538a71a50da00ab82e3e16364ca"},"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 311ms","method":"POST","requestID":"92757538a71a50da00ab82e3e16364ca","responseTime":311,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"06/Jun/2024:13:15:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.320","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"92757538a71a50da00ab82e3e16364ca"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxOX0.W2e_2-K-jiw9XfkSAD6FTF64eu1Qx0xIHLV60n6uQcA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c7bd9c0f332817d7ecf290500f353410","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":207,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:19Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":207,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.347106,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:19Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679719,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcxOX0.W2e_2-K-jiw9XfkSAD6FTF64eu1Qx0xIHLV60n6uQcA"} 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":"c7bd9c0f332817d7ecf290500f353410"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F864c6520-1cfa-4183-a607-b22c04ee521f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"c9f354b5-4090-48e3-a3c0-e157050322a7","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679719.5766444} 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":"c7bd9c0f332817d7ecf290500f353410"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5ab5e4e2-c2c4-43dd-a5d6-b39b54499a79","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679719.584681} 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":"c7bd9c0f332817d7ecf290500f353410"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F864c6520-1cfa-4183-a607-b22c04ee521f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"98fe4f8a-9028-42d9-bcba-85273de48381","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679719.8655148} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5d07b7d2-3bff-4ed3-a0fd-cc20086f0680","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679719.8659728} authorization-1 | {"level":"info","message":"POST /relations/update 200 284ms","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":"c7bd9c0f332817d7ecf290500f353410"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":284}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F864c6520-1cfa-4183-a607-b22c04ee521f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F864c6520-1cfa-4183-a607-b22c04ee521f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:19.865489265Z"}]},"request_id":"44c722a5-c1dc-4d0e-a45c-641984cfd985","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679719.8728635} 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":"c7bd9c0f332817d7ecf290500f353410"},"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":"06/Jun/2024:13:15:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.330","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c7bd9c0f332817d7ecf290500f353410"} device-1 | {"level":"info","message":"POST /devices? 201 324ms","method":"POST","requestID":"c7bd9c0f332817d7ecf290500f353410","responseTime":324,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyMH0.W-pQ-pNUYXL_CE4QEVLhPo5vwB6HpB0vyHqziRYtLd0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"ee398f1dff80488949c6d571c9335902","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":208,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:20Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":208,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.166371,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:20Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/864c6520-1cfa-4183-a607-b22c04ee521f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/864c6520-1cfa-4183-a607-b22c04ee521f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679720,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyMH0.W-pQ-pNUYXL_CE4QEVLhPo5vwB6HpB0vyHqziRYtLd0"} 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":"ee398f1dff80488949c6d571c9335902"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F864c6520-1cfa-4183-a607-b22c04ee521f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F864c6520-1cfa-4183-a607-b22c04ee521f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:19.865489265Z"}]},"request_id":"ee6c99be-aa44-4515-b7c8-41c0ca9f57d6","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679720.3667355} 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":"ee398f1dff80488949c6d571c9335902"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fac65ee6-838d-4793-955c-54e535739949","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679720.374097} 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":"ee398f1dff80488949c6d571c9335902"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F864c6520-1cfa-4183-a607-b22c04ee521f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F864c6520-1cfa-4183-a607-b22c04ee521f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:19.865489265Z"}]},"request_id":"825d9dee-db32-4345-9d2d-1f8e961f812e","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679720.3905342} 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":"ee398f1dff80488949c6d571c9335902"},"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/864c6520-1cfa-4183-a607-b22c04ee521f 200 42ms","method":"PATCH","requestID":"ee398f1dff80488949c6d571c9335902","responseTime":42,"status":200,"url":"/devices/864c6520-1cfa-4183-a607-b22c04ee521f"} gateway-1 | {"time_local":"06/Jun/2024:13:15:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/864c6520-1cfa-4183-a607-b22c04ee521f HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.051","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"ee398f1dff80488949c6d571c9335902"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyMH0.W-pQ-pNUYXL_CE4QEVLhPo5vwB6HpB0vyHqziRYtLd0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"4578ddc39760fed254e8939184db5681","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":209,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:20Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":209,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.303523,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:20Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/864c6520-1cfa-4183-a607-b22c04ee521f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/864c6520-1cfa-4183-a607-b22c04ee521f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679720,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyMH0.W-pQ-pNUYXL_CE4QEVLhPo5vwB6HpB0vyHqziRYtLd0"} 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":"4578ddc39760fed254e8939184db5681"},"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":"06/Jun/2024:13:15:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/864c6520-1cfa-4183-a607-b22c04ee521f/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":"4578ddc39760fed254e8939184db5681"} device-1 | {"level":"info","message":"POST /devices/864c6520-1cfa-4183-a607-b22c04ee521f/websocket 200 21ms","method":"POST","requestID":"4578ddc39760fed254e8939184db5681","responseTime":21,"status":200,"url":"/devices/864c6520-1cfa-4183-a607-b22c04ee521f/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/864c6520-1cfa-4183-a607-b22c04ee521f' 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"cddd8c0bf967daee504c3216d8ff1173","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"06/Jun/2024:13:15:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/783028c1-3a01-439c-9451-cbc95cf20af1/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":"cddd8c0bf967daee504c3216d8ff1173"} device-1 | {"level":"info","message":"OPTIONS /devices/783028c1-3a01-439c-9451-cbc95cf20af1/websocket 200 1ms","method":"OPTIONS","requestID":"cddd8c0bf967daee504c3216d8ff1173","responseTime":1,"status":200,"url":"/devices/783028c1-3a01-439c-9451-cbc95cf20af1/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyMX0.N7NUYhoyuSynRV2Tp8kW1x-lO907ysgl5SwCdEyhnjQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"544e37402f242e1919dc706958d1f261","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":210,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:21Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":210,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.541419,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:21Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/783028c1-3a01-439c-9451-cbc95cf20af1","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/783028c1-3a01-439c-9451-cbc95cf20af1","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679721,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyMX0.N7NUYhoyuSynRV2Tp8kW1x-lO907ysgl5SwCdEyhnjQ"} 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":"544e37402f242e1919dc706958d1f261"},"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/783028c1-3a01-439c-9451-cbc95cf20af1/websocket 200 47ms","method":"POST","requestID":"544e37402f242e1919dc706958d1f261","responseTime":47,"status":200,"url":"/devices/783028c1-3a01-439c-9451-cbc95cf20af1/websocket"} gateway-1 | {"time_local":"06/Jun/2024:13:15:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/783028c1-3a01-439c-9451-cbc95cf20af1/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.052","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"544e37402f242e1919dc706958d1f261"} device-1 | {"level":"info","message":"device 'http://localhost/devices/783028c1-3a01-439c-9451-cbc95cf20af1' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyMX0.N7NUYhoyuSynRV2Tp8kW1x-lO907ysgl5SwCdEyhnjQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"643c3f21a091f37cdc2d4a19efb0d37c","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":211,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:21Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":211,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.230494,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/783028c1-3a01-439c-9451-cbc95cf20af1","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/783028c1-3a01-439c-9451-cbc95cf20af1","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679721,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyMX0.N7NUYhoyuSynRV2Tp8kW1x-lO907ysgl5SwCdEyhnjQ"} 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":"643c3f21a091f37cdc2d4a19efb0d37c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F783028c1-3a01-439c-9451-cbc95cf20af1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F783028c1-3a01-439c-9451-cbc95cf20af1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:19.534298892Z"}]},"request_id":"1fffe26d-a48c-4ef9-891b-0fb93c8cd2f0","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679721.9777517} 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":"643c3f21a091f37cdc2d4a19efb0d37c"},"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":"06/Jun/2024:13:15:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/783028c1-3a01-439c-9451-cbc95cf20af1? 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":"643c3f21a091f37cdc2d4a19efb0d37c"} device-1 | {"level":"info","message":"GET /devices/783028c1-3a01-439c-9451-cbc95cf20af1? 200 18ms","method":"GET","requestID":"643c3f21a091f37cdc2d4a19efb0d37c","responseTime":18,"status":200,"url":"/devices/783028c1-3a01-439c-9451-cbc95cf20af1?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyMX0.N7NUYhoyuSynRV2Tp8kW1x-lO907ysgl5SwCdEyhnjQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"27801150331c6a37f9fa074ae704fc47","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":212,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:21Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":212,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.256792,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/864c6520-1cfa-4183-a607-b22c04ee521f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/864c6520-1cfa-4183-a607-b22c04ee521f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679721,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyMX0.N7NUYhoyuSynRV2Tp8kW1x-lO907ysgl5SwCdEyhnjQ"} 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":"27801150331c6a37f9fa074ae704fc47"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F864c6520-1cfa-4183-a607-b22c04ee521f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F864c6520-1cfa-4183-a607-b22c04ee521f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:19.865489265Z"}]},"request_id":"abc241c3-beb9-4c23-bd8f-57e8363cea19","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679722.0043766} 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":"27801150331c6a37f9fa074ae704fc47"},"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":"06/Jun/2024:13:15:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/864c6520-1cfa-4183-a607-b22c04ee521f? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"27801150331c6a37f9fa074ae704fc47"} device-1 | {"level":"info","message":"GET /devices/864c6520-1cfa-4183-a607-b22c04ee521f? 200 18ms","method":"GET","requestID":"27801150331c6a37f9fa074ae704fc47","responseTime":18,"status":200,"url":"/devices/864c6520-1cfa-4183-a607-b22c04ee521f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyMn0.wXNmT0Fb3g5jHVG7DIluqThw5rzhlYJ4aEhV0yXu1_U","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"f19c57673d84eecf7ab25d20f48bcbbc","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:36466","level":"info","msg":"Received request.","req_id":213,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:22Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":213,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.153951,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:22Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679722,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyMn0.wXNmT0Fb3g5jHVG7DIluqThw5rzhlYJ4aEhV0yXu1_U"} 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":"f19c57673d84eecf7ab25d20f48bcbbc"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2"},"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:36466","level":"info","msg":"Received request.","req_id":214,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:22Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":214,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.038068,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:22Z"} authorization-1 | {"client_addr":"127.0.0.1:39498","level":"info","msg":"Received request.","req_id":215,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/783028c1-3a01-439c-9451-cbc95cf20af1","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/783028c1-3a01-439c-9451-cbc95cf20af1","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679722,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyMn0.wXNmT0Fb3g5jHVG7DIluqThw5rzhlYJ4aEhV0yXu1_U"} 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":"d45b9470-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:39498","level":"info","msg":"Sent response.","req_id":215,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.289764,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/864c6520-1cfa-4183-a607-b22c04ee521f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/864c6520-1cfa-4183-a607-b22c04ee521f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679722,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyMn0.wXNmT0Fb3g5jHVG7DIluqThw5rzhlYJ4aEhV0yXu1_U"} 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":"d45c09a0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F783028c1-3a01-439c-9451-cbc95cf20af1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F783028c1-3a01-439c-9451-cbc95cf20af1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:19.534298892Z"}]},"request_id":"b334addf-e671-42ef-a49a-f3a9d3fa10c7","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679722.3120828} 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":"d45b9470-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F864c6520-1cfa-4183-a607-b22c04ee521f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F864c6520-1cfa-4183-a607-b22c04ee521f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:19.865489265Z"}]},"request_id":"66cf4801-817a-4b63-8869-92812ab4c269","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679722.3136773} 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":"d45c09a0-2406-11ef-9563-e3996e819f8c"},"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/783028c1-3a01-439c-9451-cbc95cf20af1? 200 29ms","method":"GET","requestID":"d45b9470-2406-11ef-9563-e3996e819f8c","responseTime":29,"status":200,"url":"/devices/783028c1-3a01-439c-9451-cbc95cf20af1?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/864c6520-1cfa-4183-a607-b22c04ee521f? 200 27ms","method":"GET","requestID":"d45c09a0-2406-11ef-9563-e3996e819f8c","responseTime":27,"status":200,"url":"/devices/864c6520-1cfa-4183-a607-b22c04ee521f?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2"},"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:36466","level":"info","msg":"Received request.","req_id":216,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:22Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":216,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.124532,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/783028c1-3a01-439c-9451-cbc95cf20af1","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/783028c1-3a01-439c-9451-cbc95cf20af1","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679722,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyMn0.wXNmT0Fb3g5jHVG7DIluqThw5rzhlYJ4aEhV0yXu1_U"} 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":"d4939460-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:39498","level":"info","msg":"Received request.","req_id":217,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:22Z"} authorization-1 | {"client_addr":"127.0.0.1:39498","level":"info","msg":"Sent response.","req_id":217,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.39552,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:22Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/864c6520-1cfa-4183-a607-b22c04ee521f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/864c6520-1cfa-4183-a607-b22c04ee521f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679722,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyMn0.wXNmT0Fb3g5jHVG7DIluqThw5rzhlYJ4aEhV0yXu1_U"} 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":"d493e280-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F783028c1-3a01-439c-9451-cbc95cf20af1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F783028c1-3a01-439c-9451-cbc95cf20af1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:19.534298892Z"}]},"request_id":"2d49d6d8-6c35-4c2f-9fec-b8408e6cb5bb","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679722.676848} 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":"d4939460-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F864c6520-1cfa-4183-a607-b22c04ee521f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F864c6520-1cfa-4183-a607-b22c04ee521f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:19.865489265Z"}]},"request_id":"d1c7f4ae-9a9a-434d-8308-25f1867cbb18","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679722.6787994} 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":"d493e280-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/783028c1-3a01-439c-9451-cbc95cf20af1? 200 24ms","method":"GET","requestID":"d4939460-2406-11ef-9563-e3996e819f8c","responseTime":24,"status":200,"url":"/devices/783028c1-3a01-439c-9451-cbc95cf20af1?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/864c6520-1cfa-4183-a607-b22c04ee521f? 200 25ms","method":"GET","requestID":"d493e280-2406-11ef-9563-e3996e819f8c","responseTime":25,"status":200,"url":"/devices/864c6520-1cfa-4183-a607-b22c04ee521f?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd39d23ab-9f7d-4553-9b08-bdada158afd2#owner@http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd39d23ab-9f7d-4553-9b08-bdada158afd2","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"a6678efc-b641-48ff-87cb-6e4c412e82b8","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679722.6941218} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"89ccc042-7c81-4f38-8db9-d62d219522c6","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679722.69455} 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":"f19c57673d84eecf7ab25d20f48bcbbc"},"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:36466","level":"info","msg":"Received request.","req_id":218,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:22Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":218,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.010786,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:22Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/783028c1-3a01-439c-9451-cbc95cf20af1","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/783028c1-3a01-439c-9451-cbc95cf20af1","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d4984f50-2406-11ef-9563-e3996e819f8c"},"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/783028c1-3a01-439c-9451-cbc95cf20af1/signaling 200 15ms","method":"POST","requestID":"d4984f50-2406-11ef-9563-e3996e819f8c","responseTime":15,"status":200,"url":"/devices/783028c1-3a01-439c-9451-cbc95cf20af1/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2","user":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"06/Jun/2024:13:15:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.697","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f19c57673d84eecf7ab25d20f48bcbbc"} experiment-1 | {"level":"info","message":"POST /experiments? 201 689ms","method":"POST","requestID":"f19c57673d84eecf7ab25d20f48bcbbc","responseTime":689,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyMn0.wXNmT0Fb3g5jHVG7DIluqThw5rzhlYJ4aEhV0yXu1_U","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"acf8cab266ce5ae2acf3b9fbfb85d384","responseTime":6,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":219,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:22Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":219,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.213692,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:22Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/864c6520-1cfa-4183-a607-b22c04ee521f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/864c6520-1cfa-4183-a607-b22c04ee521f","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d49bd1c0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":220,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:22Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":220,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.4093,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:22Z"} device-1 | {"level":"info","message":"POST /devices/864c6520-1cfa-4183-a607-b22c04ee521f/signaling 200 15ms","method":"POST","requestID":"d49bd1c0-2406-11ef-9563-e3996e819f8c","responseTime":15,"status":200,"url":"/devices/864c6520-1cfa-4183-a607-b22c04ee521f/signaling"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/783028c1-3a01-439c-9451-cbc95cf20af1","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/783028c1-3a01-439c-9451-cbc95cf20af1","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679722,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyMn0.wXNmT0Fb3g5jHVG7DIluqThw5rzhlYJ4aEhV0yXu1_U"} 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":"acf8cab266ce5ae2acf3b9fbfb85d384"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2"},"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":"0c5696e1-8332-434f-8ec6-5befe4257b84"},{"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":"7d9c6367-fec2-4a00-b155-cb9ae2b2b313"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"efeea6dc-6602-478c-a03c-bc2145498e51"}]},"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/783028c1-3a01-439c-9451-cbc95cf20af1"},{"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/864c6520-1cfa-4183-a607-b22c04ee521f"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} 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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F783028c1-3a01-439c-9451-cbc95cf20af1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F783028c1-3a01-439c-9451-cbc95cf20af1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:19.534298892Z"}]},"request_id":"44530288-2a19-409b-b443-093450e5b5ff","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679722.7378323} 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":"acf8cab266ce5ae2acf3b9fbfb85d384"},"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:36466","level":"info","msg":"Received request.","req_id":221,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:22Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":221,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.527022,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:22Z"} gateway-1 | {"time_local":"06/Jun/2024:13:15:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/783028c1-3a01-439c-9451-cbc95cf20af1? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.033","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"acf8cab266ce5ae2acf3b9fbfb85d384"} device-1 | {"level":"info","message":"GET /devices/783028c1-3a01-439c-9451-cbc95cf20af1? 200 25ms","method":"GET","requestID":"acf8cab266ce5ae2acf3b9fbfb85d384","responseTime":25,"status":200,"url":"/devices/783028c1-3a01-439c-9451-cbc95cf20af1?"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679722,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyMn0.wXNmT0Fb3g5jHVG7DIluqThw5rzhlYJ4aEhV0yXu1_U"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","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":"d49f0610-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyMn0.wXNmT0Fb3g5jHVG7DIluqThw5rzhlYJ4aEhV0yXu1_U","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"a36541ec48ff4eb8a4578cca44addda7","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"f5f611fe-34ff-42b7-84c0-f69da5cec617","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679722.7597044} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"415d0a4b-13d9-4ca7-9d7b-1b3d852be5d5","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679722.7600856} 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":"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":"d49f0610-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":222,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:22Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":222,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.243739,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/864c6520-1cfa-4183-a607-b22c04ee521f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/864c6520-1cfa-4183-a607-b22c04ee521f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679722,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyMn0.wXNmT0Fb3g5jHVG7DIluqThw5rzhlYJ4aEhV0yXu1_U"} 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":"a36541ec48ff4eb8a4578cca44addda7"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F864c6520-1cfa-4183-a607-b22c04ee521f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F864c6520-1cfa-4183-a607-b22c04ee521f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:19.865489265Z"}]},"request_id":"afd8af2a-0363-49db-a904-ea24b156d417","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679722.773445} 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":"a36541ec48ff4eb8a4578cca44addda7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} 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/b52676d2-6825-4211-98c5-fbb02031c502'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/b52676d2-6825-4211-98c5-fbb02031c502'"} 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 274ms","method":"POST","requestID":"d49f0610-2406-11ef-9563-e3996e819f8c","responseTime":274,"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":"06/Jun/2024:13:15:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/864c6520-1cfa-4183-a607-b22c04ee521f? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.266","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a36541ec48ff4eb8a4578cca44addda7"} device-1 | {"level":"info","message":"GET /devices/864c6520-1cfa-4183-a607-b22c04ee521f? 200 259ms","method":"GET","requestID":"a36541ec48ff4eb8a4578cca44addda7","responseTime":259,"status":200,"url":"/devices/864c6520-1cfa-4183-a607-b22c04ee521f?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"b52676d2-6825-4211-98c5-fbb02031c502","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/b52676d2-6825-4211-98c5-fbb02031c502' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"b52676d2-6825-4211-98c5-fbb02031c502","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"662d4cbf454047055422c62c7ec9f9d6","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/783028c1-3a01-439c-9451-cbc95cf20af1"},{"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/864c6520-1cfa-4183-a607-b22c04ee521f"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/b52676d2-6825-4211-98c5-fbb02031c502"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"662d4cbf454047055422c62c7ec9f9d6","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15: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.010","http_referrer":"","http_user_agent":"node-fetch","requestID":"662d4cbf454047055422c62c7ec9f9d6"} device-1 | {"data":{"peerconnection":"b52676d2-6825-4211-98c5-fbb02031c502","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyM30.fhmaU1gm9MkSXELQRWuYPqruzD7cjQLNE1YTyz3uTzg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"56fe16bbdc81c2af07b69ca026361cd2","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":223,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:23Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":223,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.272852,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679723,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyM30.fhmaU1gm9MkSXELQRWuYPqruzD7cjQLNE1YTyz3uTzg"} 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":"56fe16bbdc81c2af07b69ca026361cd2"},"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/d39d23ab-9f7d-4553-9b08-bdada158afd2"} gateway-1 | {"time_local":"06/Jun/2024:13:15:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2 HTTP/1.1","status": "200","body_bytes_sent":"1362","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"56fe16bbdc81c2af07b69ca026361cd2"} experiment-1 | {"level":"info","message":"GET /experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2 200 19ms","method":"GET","requestID":"56fe16bbdc81c2af07b69ca026361cd2","responseTime":19,"status":200,"url":"/experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyM30.fhmaU1gm9MkSXELQRWuYPqruzD7cjQLNE1YTyz3uTzg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"54caa1925c5ebc9316f169b1588310a2","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":224,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:23Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":224,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.817755,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679723,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyM30.fhmaU1gm9MkSXELQRWuYPqruzD7cjQLNE1YTyz3uTzg"} 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":"54caa1925c5ebc9316f169b1588310a2"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"data":{"peerconnection":"b52676d2-6825-4211-98c5-fbb02031c502","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2"} gateway-1 | {"time_local":"06/Jun/2024:13:15:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2 HTTP/1.1","status": "200","body_bytes_sent":"1362","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"54caa1925c5ebc9316f169b1588310a2"} experiment-1 | {"level":"info","message":"GET /experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2 200 16ms","method":"GET","requestID":"54caa1925c5ebc9316f169b1588310a2","responseTime":16,"status":200,"url":"/experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/b52676d2-6825-4211-98c5-fbb02031c502' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"b52676d2-6825-4211-98c5-fbb02031c502","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b9c87b9ebf3ff6dfe84714fabb2c1660","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/783028c1-3a01-439c-9451-cbc95cf20af1"},{"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/864c6520-1cfa-4183-a607-b22c04ee521f"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/b52676d2-6825-4211-98c5-fbb02031c502"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":225,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:23Z"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","contextual_tuples":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb52676d2-6825-4211-98c5-fbb02031c502","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f475986d-3b21-4ac5-a5ce-4b8dd42e599b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679723.406079} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":225,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":5.286882,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/b52676d2-6825-4211-98c5-fbb02031c502","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/b52676d2-6825-4211-98c5-fbb02031c502","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 8ms","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":"d503bb50-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/b52676d2-6825-4211-98c5-fbb02031c502 200 16ms","method":"GET","requestID":"d503bb50-2406-11ef-9563-e3996e819f8c","responseTime":16,"status":200,"url":"/peerconnections/b52676d2-6825-4211-98c5-fbb02031c502"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 51ms","method":"POST","requestID":"b9c87b9ebf3ff6dfe84714fabb2c1660","responseTime":51,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15: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.055","http_referrer":"","http_user_agent":"node-fetch","requestID":"b9c87b9ebf3ff6dfe84714fabb2c1660"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyM30.fhmaU1gm9MkSXELQRWuYPqruzD7cjQLNE1YTyz3uTzg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"0dd19f5804b03abefe7fa55afe1b82e9","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":226,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:23Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":226,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.355602,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679723,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyM30.fhmaU1gm9MkSXELQRWuYPqruzD7cjQLNE1YTyz3uTzg"} 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":"0dd19f5804b03abefe7fa55afe1b82e9"},"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/d39d23ab-9f7d-4553-9b08-bdada158afd2"} gateway-1 | {"time_local":"06/Jun/2024:13:15:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2 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":"0dd19f5804b03abefe7fa55afe1b82e9"} experiment-1 | {"level":"info","message":"GET /experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2 200 18ms","method":"GET","requestID":"0dd19f5804b03abefe7fa55afe1b82e9","responseTime":18,"status":200,"url":"/experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyM30.fhmaU1gm9MkSXELQRWuYPqruzD7cjQLNE1YTyz3uTzg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"24874a54e089c3e07a4fc114379bf525","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":227,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:23Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":227,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.215089,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:23Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679723,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyM30.fhmaU1gm9MkSXELQRWuYPqruzD7cjQLNE1YTyz3uTzg"} 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":"24874a54e089c3e07a4fc114379bf525"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":228,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:23Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":228,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.320028,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:23Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/b52676d2-6825-4211-98c5-fbb02031c502","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:http://localhost/peerconnections/b52676d2-6825-4211-98c5-fbb02031c502","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679723,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyM30.fhmaU1gm9MkSXELQRWuYPqruzD7cjQLNE1YTyz3uTzg"} 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":"d51806a0-2406-11ef-9563-e3996e819f8c"},"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/b52676d2-6825-4211-98c5-fbb02031c502' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/b52676d2-6825-4211-98c5-fbb02031c502' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"b52676d2-6825-4211-98c5-fbb02031c502","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb52676d2-6825-4211-98c5-fbb02031c502': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb52676d2-6825-4211-98c5-fbb02031c502","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"a4d0ffe8-02c1-4098-b372-481f7bbd0fc0","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679723.5621421} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"84781e2d6e801696cef946ecf5e9c114","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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0452d2dc-59c8-4584-9cff-4b037af46f24","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679723.562582} 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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/783028c1-3a01-439c-9451-cbc95cf20af1"},{"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/864c6520-1cfa-4183-a607-b22c04ee521f"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/b52676d2-6825-4211-98c5-fbb02031c502"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"7b75d7da95758d24ea545321c2a48bc5","responseTime":1,"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":"d51806a0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} 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/783028c1-3a01-439c-9451-cbc95cf20af1"},{"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/864c6520-1cfa-4183-a607-b22c04ee521f"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/b52676d2-6825-4211-98c5-fbb02031c502"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/b52676d2-6825-4211-98c5-fbb02031c502 204 241ms","method":"DELETE","requestID":"d51806a0-2406-11ef-9563-e3996e819f8c","responseTime":241,"status":204,"url":"/peerconnections/b52676d2-6825-4211-98c5-fbb02031c502"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/783028c1-3a01-439c-9451-cbc95cf20af1'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd39d23ab-9f7d-4553-9b08-bdada158afd2': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd39d23ab-9f7d-4553-9b08-bdada158afd2","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"c5f848d7-54d9-4923-8b6b-61eea0832cac","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679723.813343} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3313954e-0121-4a8a-8919-9deb1e5148af","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679723.8136814} 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":"24874a54e089c3e07a4fc114379bf525"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":16}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2"} gateway-1 | {"time_local":"06/Jun/2024:13:15:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.631","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"24874a54e089c3e07a4fc114379bf525"} gateway-1 | {"time_local":"06/Jun/2024:13:15:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1678","request_time":"3.713","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"991d2385b66b41673fd50ad6fe468f32"} experiment-1 | {"level":"info","message":"DELETE /experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2 204 626ms","method":"DELETE","requestID":"24874a54e089c3e07a4fc114379bf525","responseTime":626,"status":204,"url":"/experiments/d39d23ab-9f7d-4553-9b08-bdada158afd2"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 578ms","method":"POST","requestID":"84781e2d6e801696cef946ecf5e9c114","responseTime":578,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.582","http_referrer":"","http_user_agent":"node-fetch","requestID":"84781e2d6e801696cef946ecf5e9c114"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 578ms","method":"POST","requestID":"7b75d7da95758d24ea545321c2a48bc5","responseTime":578,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.584","http_referrer":"","http_user_agent":"node-fetch","requestID":"7b75d7da95758d24ea545321c2a48bc5"} gateway-1 | {"time_local":"06/Jun/2024:13:15:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1762","request_time":"2.210","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d4ad0f827bf587f362eb0c125d2eb69c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyNH0.W5NklOOH-q_2uRVLG5wHxvJos1meO8O78l-KNxO35pk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"98b4e1780ac37f60224a36c03fe0301f","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":229,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:24Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":229,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.837272,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:24Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679724,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyNH0.W5NklOOH-q_2uRVLG5wHxvJos1meO8O78l-KNxO35pk"} 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":"98b4e1780ac37f60224a36c03fe0301f"},"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/864c6520-1cfa-4183-a607-b22c04ee521f' 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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55adead6-54e1-4fe5-93ef-66813a43fe8e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"c18c0d80-e91c-4f02-ba05-c0f1d9c1317b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679724.4400017} 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":"98b4e1780ac37f60224a36c03fe0301f"},"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/783028c1-3a01-439c-9451-cbc95cf20af1' 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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b72bcd46-3c77-42fc-91c5-af97b2483e1b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679724.4465609} 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":"98b4e1780ac37f60224a36c03fe0301f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55adead6-54e1-4fe5-93ef-66813a43fe8e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"d09fd045-0ebc-49c4-a8bd-639aced486d9","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679724.4578311} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bf3056c2-9294-4694-909a-892e2f34d46c","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679724.4580882} 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":"98b4e1780ac37f60224a36c03fe0301f"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55adead6-54e1-4fe5-93ef-66813a43fe8e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55adead6-54e1-4fe5-93ef-66813a43fe8e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:24.457800819Z"}]},"request_id":"28045688-6ad8-4ea9-a82c-01eb602df7eb","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679724.464085} 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":"98b4e1780ac37f60224a36c03fe0301f"},"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":"06/Jun/2024:13:15:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.327","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"98b4e1780ac37f60224a36c03fe0301f"} device-1 | {"level":"info","message":"POST /devices? 201 310ms","method":"POST","requestID":"98b4e1780ac37f60224a36c03fe0301f","responseTime":310,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyNH0.W5NklOOH-q_2uRVLG5wHxvJos1meO8O78l-KNxO35pk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d97a54ca3c7b2e52d1cd1e08a2c6bcb0","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":230,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:24Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":230,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.687153,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:24Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679724,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyNH0.W5NklOOH-q_2uRVLG5wHxvJos1meO8O78l-KNxO35pk"} 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":"d97a54ca3c7b2e52d1cd1e08a2c6bcb0"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F57a9028d-8b52-4401-8c75-0640bfe88c25","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e012dd90-bb3d-46f4-9399-3f19d43d586e","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679724.4972343} 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":"d97a54ca3c7b2e52d1cd1e08a2c6bcb0"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dbccf80d-2d79-48a2-8e9b-aeb23a7a75cc","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679724.5036154} 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":"d97a54ca3c7b2e52d1cd1e08a2c6bcb0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F57a9028d-8b52-4401-8c75-0640bfe88c25","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"e844531b-97c1-4039-b730-6df98900ad33","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679724.7941644} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4a273800-f944-40f4-bdb2-3d3b90c74bc3","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679724.7944572} authorization-1 | {"level":"info","message":"POST /relations/update 200 294ms","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":"d97a54ca3c7b2e52d1cd1e08a2c6bcb0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":294}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F57a9028d-8b52-4401-8c75-0640bfe88c25","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F57a9028d-8b52-4401-8c75-0640bfe88c25","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:24.794132098Z"}]},"request_id":"bf10a4fb-43f5-46db-a2a2-8cf1d7973b13","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679724.8021905} 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":"d97a54ca3c7b2e52d1cd1e08a2c6bcb0"},"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":"06/Jun/2024:13:15:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.337","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d97a54ca3c7b2e52d1cd1e08a2c6bcb0"} device-1 | {"level":"info","message":"POST /devices? 201 330ms","method":"POST","requestID":"d97a54ca3c7b2e52d1cd1e08a2c6bcb0","responseTime":330,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyNX0.U1LJWwlt280tz9Lx8WW046bFm0tIftJa4zut1ajLHIo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"a03cb5b804dd70f1b35c1e3a7382fde7","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":231,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:25Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":231,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.63839,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:25Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/55adead6-54e1-4fe5-93ef-66813a43fe8e","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/55adead6-54e1-4fe5-93ef-66813a43fe8e","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679725,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyNX0.U1LJWwlt280tz9Lx8WW046bFm0tIftJa4zut1ajLHIo"} 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":"a03cb5b804dd70f1b35c1e3a7382fde7"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55adead6-54e1-4fe5-93ef-66813a43fe8e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55adead6-54e1-4fe5-93ef-66813a43fe8e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:24.457800819Z"}]},"request_id":"6bc1c3b2-6704-465f-9fe2-77a7b2c21d73","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679725.2898164} 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":"a03cb5b804dd70f1b35c1e3a7382fde7"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"11e5b6ec-7bed-42bd-b039-fdd0a651ed95","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679725.298351} 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":"a03cb5b804dd70f1b35c1e3a7382fde7"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55adead6-54e1-4fe5-93ef-66813a43fe8e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55adead6-54e1-4fe5-93ef-66813a43fe8e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:24.457800819Z"}]},"request_id":"7497c588-10eb-432f-b576-99a5206d3525","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679725.3327906} 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":"a03cb5b804dd70f1b35c1e3a7382fde7"},"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":"06/Jun/2024:13:15:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/55adead6-54e1-4fe5-93ef-66813a43fe8e HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.069","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"a03cb5b804dd70f1b35c1e3a7382fde7"} device-1 | {"level":"info","message":"PATCH /devices/55adead6-54e1-4fe5-93ef-66813a43fe8e 200 61ms","method":"PATCH","requestID":"a03cb5b804dd70f1b35c1e3a7382fde7","responseTime":61,"status":200,"url":"/devices/55adead6-54e1-4fe5-93ef-66813a43fe8e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyNX0.U1LJWwlt280tz9Lx8WW046bFm0tIftJa4zut1ajLHIo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"adcebea4aa61999d59a7cfe5c8b65a64","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":232,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:25Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":232,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.204442,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:25Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/55adead6-54e1-4fe5-93ef-66813a43fe8e","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/55adead6-54e1-4fe5-93ef-66813a43fe8e","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679725,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyNX0.U1LJWwlt280tz9Lx8WW046bFm0tIftJa4zut1ajLHIo"} 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":"adcebea4aa61999d59a7cfe5c8b65a64"},"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":"06/Jun/2024:13:15:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/55adead6-54e1-4fe5-93ef-66813a43fe8e/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.024","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"adcebea4aa61999d59a7cfe5c8b65a64"} device-1 | {"level":"info","message":"POST /devices/55adead6-54e1-4fe5-93ef-66813a43fe8e/websocket 200 19ms","method":"POST","requestID":"adcebea4aa61999d59a7cfe5c8b65a64","responseTime":19,"status":200,"url":"/devices/55adead6-54e1-4fe5-93ef-66813a43fe8e/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/55adead6-54e1-4fe5-93ef-66813a43fe8e' 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"8d3e0e3f32c24a36e1cab36e06e82fee","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"06/Jun/2024:13:15:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/57a9028d-8b52-4401-8c75-0640bfe88c25/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":"8d3e0e3f32c24a36e1cab36e06e82fee"} device-1 | {"level":"info","message":"OPTIONS /devices/57a9028d-8b52-4401-8c75-0640bfe88c25/websocket 200 1ms","method":"OPTIONS","requestID":"8d3e0e3f32c24a36e1cab36e06e82fee","responseTime":1,"status":200,"url":"/devices/57a9028d-8b52-4401-8c75-0640bfe88c25/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyNn0.AVKykAzRr2S9WUaW2RuAhYHeWtKNZO9SnmlzQH3Ferc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"7fa5bf94a50c10a970d6cb7efdcd6b29","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":233,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:26Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":233,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.312391,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:26Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/57a9028d-8b52-4401-8c75-0640bfe88c25","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/57a9028d-8b52-4401-8c75-0640bfe88c25","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679726,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyNn0.AVKykAzRr2S9WUaW2RuAhYHeWtKNZO9SnmlzQH3Ferc"} 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":"7fa5bf94a50c10a970d6cb7efdcd6b29"},"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":"06/Jun/2024:13:15:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/57a9028d-8b52-4401-8c75-0640bfe88c25/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.035","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"7fa5bf94a50c10a970d6cb7efdcd6b29"} device-1 | {"level":"info","message":"POST /devices/57a9028d-8b52-4401-8c75-0640bfe88c25/websocket 200 28ms","method":"POST","requestID":"7fa5bf94a50c10a970d6cb7efdcd6b29","responseTime":28,"status":200,"url":"/devices/57a9028d-8b52-4401-8c75-0640bfe88c25/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/57a9028d-8b52-4401-8c75-0640bfe88c25' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyNn0.AVKykAzRr2S9WUaW2RuAhYHeWtKNZO9SnmlzQH3Ferc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d8b5bc485b72866b622bfa6a73984e4c","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":234,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:26Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":234,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.080602,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:26Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/55adead6-54e1-4fe5-93ef-66813a43fe8e","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/55adead6-54e1-4fe5-93ef-66813a43fe8e","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679726,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyNn0.AVKykAzRr2S9WUaW2RuAhYHeWtKNZO9SnmlzQH3Ferc"} 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":"d8b5bc485b72866b622bfa6a73984e4c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55adead6-54e1-4fe5-93ef-66813a43fe8e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55adead6-54e1-4fe5-93ef-66813a43fe8e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:24.457800819Z"}]},"request_id":"5a0fe76f-2d8d-4170-ad97-1362dfc7dc24","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679726.8798661} 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":"d8b5bc485b72866b622bfa6a73984e4c"},"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":"06/Jun/2024:13:15:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/55adead6-54e1-4fe5-93ef-66813a43fe8e? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.028","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d8b5bc485b72866b622bfa6a73984e4c"} device-1 | {"level":"info","message":"GET /devices/55adead6-54e1-4fe5-93ef-66813a43fe8e? 200 24ms","method":"GET","requestID":"d8b5bc485b72866b622bfa6a73984e4c","responseTime":24,"status":200,"url":"/devices/55adead6-54e1-4fe5-93ef-66813a43fe8e?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyNn0.AVKykAzRr2S9WUaW2RuAhYHeWtKNZO9SnmlzQH3Ferc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"23b4321cd41361a6b02a7e57a4014e7a","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":235,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:26Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":235,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.243937,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:26Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/57a9028d-8b52-4401-8c75-0640bfe88c25","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/57a9028d-8b52-4401-8c75-0640bfe88c25","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679726,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyNn0.AVKykAzRr2S9WUaW2RuAhYHeWtKNZO9SnmlzQH3Ferc"} 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":"23b4321cd41361a6b02a7e57a4014e7a"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F57a9028d-8b52-4401-8c75-0640bfe88c25","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F57a9028d-8b52-4401-8c75-0640bfe88c25","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:24.794132098Z"}]},"request_id":"54f60d81-c39d-4d89-8404-ad42c9ff81df","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679726.9125428} 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":"23b4321cd41361a6b02a7e57a4014e7a"},"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":"06/Jun/2024:13:15:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/57a9028d-8b52-4401-8c75-0640bfe88c25? 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":"23b4321cd41361a6b02a7e57a4014e7a"} device-1 | {"level":"info","message":"GET /devices/57a9028d-8b52-4401-8c75-0640bfe88c25? 200 19ms","method":"GET","requestID":"23b4321cd41361a6b02a7e57a4014e7a","responseTime":19,"status":200,"url":"/devices/57a9028d-8b52-4401-8c75-0640bfe88c25?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyNn0.AVKykAzRr2S9WUaW2RuAhYHeWtKNZO9SnmlzQH3Ferc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ee13e57c9fb5492016854b37ae48736d","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:36466","level":"info","msg":"Received request.","req_id":236,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:26Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":236,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.139418,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:26Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679726,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyNn0.AVKykAzRr2S9WUaW2RuAhYHeWtKNZO9SnmlzQH3Ferc"} 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":"ee13e57c9fb5492016854b37ae48736d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd59dbbf-2430-410f-a0cf-87d770986d3d"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd59dbbf-2430-410f-a0cf-87d770986d3d"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd59dbbf-2430-410f-a0cf-87d770986d3d"},"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:36466","level":"info","msg":"Received request.","req_id":237,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:27Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":237,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.760014,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/55adead6-54e1-4fe5-93ef-66813a43fe8e","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/55adead6-54e1-4fe5-93ef-66813a43fe8e","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679726,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyNn0.AVKykAzRr2S9WUaW2RuAhYHeWtKNZO9SnmlzQH3Ferc"} 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":"d74f31f0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:39498","level":"info","msg":"Received request.","req_id":238,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:27Z"} authorization-1 | {"client_addr":"127.0.0.1:39498","level":"info","msg":"Sent response.","req_id":238,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.975704,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/57a9028d-8b52-4401-8c75-0640bfe88c25","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/57a9028d-8b52-4401-8c75-0640bfe88c25","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679726,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyNn0.AVKykAzRr2S9WUaW2RuAhYHeWtKNZO9SnmlzQH3Ferc"} 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":"d74fa720-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55adead6-54e1-4fe5-93ef-66813a43fe8e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55adead6-54e1-4fe5-93ef-66813a43fe8e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:24.457800819Z"}]},"request_id":"5fbdaaae-96fa-43ad-a082-c17f0e1a7442","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679727.2603173} 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":"d74f31f0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F57a9028d-8b52-4401-8c75-0640bfe88c25","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F57a9028d-8b52-4401-8c75-0640bfe88c25","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:24.794132098Z"}]},"request_id":"494b5dfa-dc30-4bbe-8cce-dd17817b0954","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679727.2616708} 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":"d74fa720-2406-11ef-9563-e3996e819f8c"},"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/55adead6-54e1-4fe5-93ef-66813a43fe8e? 200 20ms","method":"GET","requestID":"d74f31f0-2406-11ef-9563-e3996e819f8c","responseTime":20,"status":200,"url":"/devices/55adead6-54e1-4fe5-93ef-66813a43fe8e?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/57a9028d-8b52-4401-8c75-0640bfe88c25? 200 18ms","method":"GET","requestID":"d74fa720-2406-11ef-9563-e3996e819f8c","responseTime":18,"status":200,"url":"/devices/57a9028d-8b52-4401-8c75-0640bfe88c25?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd59dbbf-2430-410f-a0cf-87d770986d3d"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd59dbbf-2430-410f-a0cf-87d770986d3d"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd59dbbf-2430-410f-a0cf-87d770986d3d"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd59dbbf-2430-410f-a0cf-87d770986d3d"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd59dbbf-2430-410f-a0cf-87d770986d3d"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd59dbbf-2430-410f-a0cf-87d770986d3d"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd59dbbf-2430-410f-a0cf-87d770986d3d"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd59dbbf-2430-410f-a0cf-87d770986d3d"},"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/cd59dbbf-2430-410f-a0cf-87d770986d3d"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":239,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:27Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":239,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.840419,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:27Z"} authorization-1 | {"client_addr":"127.0.0.1:39498","level":"info","msg":"Received request.","req_id":240,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/55adead6-54e1-4fe5-93ef-66813a43fe8e","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/55adead6-54e1-4fe5-93ef-66813a43fe8e","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679726,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyNn0.AVKykAzRr2S9WUaW2RuAhYHeWtKNZO9SnmlzQH3Ferc"} 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":"d75b8e00-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:39498","level":"info","msg":"Sent response.","req_id":240,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.669643,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/57a9028d-8b52-4401-8c75-0640bfe88c25","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/57a9028d-8b52-4401-8c75-0640bfe88c25","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679726,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyNn0.AVKykAzRr2S9WUaW2RuAhYHeWtKNZO9SnmlzQH3Ferc"} 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":"d75c0330-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55adead6-54e1-4fe5-93ef-66813a43fe8e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55adead6-54e1-4fe5-93ef-66813a43fe8e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:24.457800819Z"}]},"request_id":"02f9531a-abf2-4450-95b9-501f80714bc9","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679727.3489943} 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":"d75b8e00-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F57a9028d-8b52-4401-8c75-0640bfe88c25","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F57a9028d-8b52-4401-8c75-0640bfe88c25","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:24.794132098Z"}]},"request_id":"215639a4-50b5-438d-8bec-902d50bd8822","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679727.351085} 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":"d75c0330-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/55adead6-54e1-4fe5-93ef-66813a43fe8e? 200 32ms","method":"GET","requestID":"d75b8e00-2406-11ef-9563-e3996e819f8c","responseTime":32,"status":200,"url":"/devices/55adead6-54e1-4fe5-93ef-66813a43fe8e?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/57a9028d-8b52-4401-8c75-0640bfe88c25? 200 31ms","method":"GET","requestID":"d75c0330-2406-11ef-9563-e3996e819f8c","responseTime":31,"status":200,"url":"/devices/57a9028d-8b52-4401-8c75-0640bfe88c25?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":241,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:27Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":241,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.204847,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:27Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/55adead6-54e1-4fe5-93ef-66813a43fe8e","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/55adead6-54e1-4fe5-93ef-66813a43fe8e","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d7615a60-2406-11ef-9563-e3996e819f8c"},"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/55adead6-54e1-4fe5-93ef-66813a43fe8e/signaling 200 13ms","method":"POST","requestID":"d7615a60-2406-11ef-9563-e3996e819f8c","responseTime":13,"status":200,"url":"/devices/55adead6-54e1-4fe5-93ef-66813a43fe8e/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":242,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:27Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":242,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":2.327414,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:27Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/57a9028d-8b52-4401-8c75-0640bfe88c25","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/57a9028d-8b52-4401-8c75-0640bfe88c25","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d763f270-2406-11ef-9563-e3996e819f8c"},"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/57a9028d-8b52-4401-8c75-0640bfe88c25/signaling 200 14ms","method":"POST","requestID":"d763f270-2406-11ef-9563-e3996e819f8c","responseTime":14,"status":200,"url":"/devices/57a9028d-8b52-4401-8c75-0640bfe88c25/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd59dbbf-2430-410f-a0cf-87d770986d3d"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd59dbbf-2430-410f-a0cf-87d770986d3d"},"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":"ea189903-73ac-40c0-82e4-05cf1ffd6905"},{"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":"f0a14a0c-1607-480a-a93f-222249881951"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"b4ef0108-c031-4a67-9059-3de94ae1c793"}]},"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/55adead6-54e1-4fe5-93ef-66813a43fe8e"},{"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/57a9028d-8b52-4401-8c75-0640bfe88c25"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":243,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:27Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":243,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.390661,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:27Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679726,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyNn0.AVKykAzRr2S9WUaW2RuAhYHeWtKNZO9SnmlzQH3Ferc"} 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":"d766ffb0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fcd59dbbf-2430-410f-a0cf-87d770986d3d#owner@http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fcd59dbbf-2430-410f-a0cf-87d770986d3d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"18f56abc-4a19-4a59-aa66-36de560c6ef1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679727.655573} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6661cac1-afc3-4129-a8f4-510c0dfc47fd","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679727.656006} authorization-1 | {"level":"info","message":"POST /relations/update 200 320ms","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":"ee13e57c9fb5492016854b37ae48736d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":320}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"6cc7c55d-9331-44b3-a707-535ae3ec8d5d","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679727.6579175} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"931d5c00-663a-4e87-b719-7c54cfc00d83","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679727.6585097} authorization-1 | {"level":"info","message":"POST /relations/update 200 242ms","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":"d766ffb0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":242}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/cd59dbbf-2430-410f-a0cf-87d770986d3d","user":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"06/Jun/2024:13:15:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.751","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ee13e57c9fb5492016854b37ae48736d"} experiment-1 | {"level":"info","message":"POST /experiments? 201 745ms","method":"POST","requestID":"ee13e57c9fb5492016854b37ae48736d","responseTime":745,"status":201,"url":"/experiments?"} 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/72b83dc5-0980-4315-b997-0e8e63284d9f'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/72b83dc5-0980-4315-b997-0e8e63284d9f'"} 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 276ms","method":"POST","requestID":"d766ffb0-2406-11ef-9563-e3996e819f8c","responseTime":276,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyN30.vzxap-B4_waX28Z6gSN9jd6B6KJwkiQJS6h7cOKgVbc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"bc3611635c6645db92336de0378cbdae","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":244,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:27Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":244,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.867515,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/55adead6-54e1-4fe5-93ef-66813a43fe8e","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/55adead6-54e1-4fe5-93ef-66813a43fe8e","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679727,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyN30.vzxap-B4_waX28Z6gSN9jd6B6KJwkiQJS6h7cOKgVbc"} 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":"bc3611635c6645db92336de0378cbdae"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55adead6-54e1-4fe5-93ef-66813a43fe8e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F55adead6-54e1-4fe5-93ef-66813a43fe8e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:24.457800819Z"}]},"request_id":"34e59ef7-c385-4739-877c-e351ea878838","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679727.7007427} 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":"bc3611635c6645db92336de0378cbdae"},"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":"06/Jun/2024:13:15:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/55adead6-54e1-4fe5-93ef-66813a43fe8e? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.032","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bc3611635c6645db92336de0378cbdae"} device-1 | {"level":"info","message":"GET /devices/55adead6-54e1-4fe5-93ef-66813a43fe8e? 200 22ms","method":"GET","requestID":"bc3611635c6645db92336de0378cbdae","responseTime":22,"status":200,"url":"/devices/55adead6-54e1-4fe5-93ef-66813a43fe8e?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyN30.vzxap-B4_waX28Z6gSN9jd6B6KJwkiQJS6h7cOKgVbc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"9ca158428c519d6029f1c1ffb3153437","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":245,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:27Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":245,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.866699,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/57a9028d-8b52-4401-8c75-0640bfe88c25","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/57a9028d-8b52-4401-8c75-0640bfe88c25","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679727,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyN30.vzxap-B4_waX28Z6gSN9jd6B6KJwkiQJS6h7cOKgVbc"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd59dbbf-2430-410f-a0cf-87d770986d3d"},"level":"info","message":"Successfully created peerconnections for experiment"} 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":"9ca158428c519d6029f1c1ffb3153437"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F57a9028d-8b52-4401-8c75-0640bfe88c25","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F57a9028d-8b52-4401-8c75-0640bfe88c25","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:24.794132098Z"}]},"request_id":"3aa79982-26e8-4a85-8a61-1644362eadaf","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679727.7200139} 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":"9ca158428c519d6029f1c1ffb3153437"},"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":"06/Jun/2024:13:15:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/57a9028d-8b52-4401-8c75-0640bfe88c25? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9ca158428c519d6029f1c1ffb3153437"} device-1 | {"level":"info","message":"GET /devices/57a9028d-8b52-4401-8c75-0640bfe88c25? 200 11ms","method":"GET","requestID":"9ca158428c519d6029f1c1ffb3153437","responseTime":11,"status":200,"url":"/devices/57a9028d-8b52-4401-8c75-0640bfe88c25?"} device-1 | {"data":{"peerconnection":"72b83dc5-0980-4315-b997-0e8e63284d9f","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/72b83dc5-0980-4315-b997-0e8e63284d9f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"72b83dc5-0980-4315-b997-0e8e63284d9f","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"a62dc3949d80a7f8de92a6518853b213","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/55adead6-54e1-4fe5-93ef-66813a43fe8e"},{"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/57a9028d-8b52-4401-8c75-0640bfe88c25"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/72b83dc5-0980-4315-b997-0e8e63284d9f"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 12ms","method":"POST","requestID":"a62dc3949d80a7f8de92a6518853b213","responseTime":12,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15: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.016","http_referrer":"","http_user_agent":"node-fetch","requestID":"a62dc3949d80a7f8de92a6518853b213"} device-1 | {"data":{"peerconnection":"72b83dc5-0980-4315-b997-0e8e63284d9f","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"72b83dc5-0980-4315-b997-0e8e63284d9f","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/72b83dc5-0980-4315-b997-0e8e63284d9f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"72b83dc5-0980-4315-b997-0e8e63284d9f","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"6d48fd6a8c420df7ef05278d9af48d69","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/55adead6-54e1-4fe5-93ef-66813a43fe8e"},{"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/57a9028d-8b52-4401-8c75-0640bfe88c25"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/72b83dc5-0980-4315-b997-0e8e63284d9f"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":246,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:28Z"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","contextual_tuples":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F72b83dc5-0980-4315-b997-0e8e63284d9f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8518c006-9b03-4491-b527-b6e9e8765ba2","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679728.8219898} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":246,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.394803,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/72b83dc5-0980-4315-b997-0e8e63284d9f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/72b83dc5-0980-4315-b997-0e8e63284d9f","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":"d83e73f0-2406-11ef-9563-e3996e819f8c"},"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/72b83dc5-0980-4315-b997-0e8e63284d9f 200 13ms","method":"GET","requestID":"d83e73f0-2406-11ef-9563-e3996e819f8c","responseTime":13,"status":200,"url":"/peerconnections/72b83dc5-0980-4315-b997-0e8e63284d9f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyOH0.7jsXJcaOuE_z1cBd83c3YWXo0CzmaDXxXWQxHGT9zW0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"64087b70a6ada590193808a9134e49e2","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/cd59dbbf-2430-410f-a0cf-87d770986d3d"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":247,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:28Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":247,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.153992,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/cd59dbbf-2430-410f-a0cf-87d770986d3d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/cd59dbbf-2430-410f-a0cf-87d770986d3d","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679728,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyOH0.7jsXJcaOuE_z1cBd83c3YWXo0CzmaDXxXWQxHGT9zW0"} 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":"64087b70a6ada590193808a9134e49e2"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 346ms","method":"POST","requestID":"6d48fd6a8c420df7ef05278d9af48d69","responseTime":346,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15: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.350","http_referrer":"","http_user_agent":"node-fetch","requestID":"6d48fd6a8c420df7ef05278d9af48d69"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/cd59dbbf-2430-410f-a0cf-87d770986d3d"} gateway-1 | {"time_local":"06/Jun/2024:13:15:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/cd59dbbf-2430-410f-a0cf-87d770986d3d HTTP/1.1","status": "200","body_bytes_sent":"1364","request_time":"0.267","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"64087b70a6ada590193808a9134e49e2"} experiment-1 | {"level":"info","message":"GET /experiments/cd59dbbf-2430-410f-a0cf-87d770986d3d 200 260ms","method":"GET","requestID":"64087b70a6ada590193808a9134e49e2","responseTime":260,"status":200,"url":"/experiments/cd59dbbf-2430-410f-a0cf-87d770986d3d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyOX0.damnIJBQgsMH3od6cnmXNCOKI5U-mOgnlsDMNKi0_go","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"db8a5b5d4dac9b4778f91296932f4c6c","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/cd59dbbf-2430-410f-a0cf-87d770986d3d"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":248,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:29Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":248,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.250578,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:29Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/cd59dbbf-2430-410f-a0cf-87d770986d3d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/cd59dbbf-2430-410f-a0cf-87d770986d3d","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679729,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyOX0.damnIJBQgsMH3od6cnmXNCOKI5U-mOgnlsDMNKi0_go"} 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":"db8a5b5d4dac9b4778f91296932f4c6c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd59dbbf-2430-410f-a0cf-87d770986d3d"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":249,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:29Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":249,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.29504,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:29Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/72b83dc5-0980-4315-b997-0e8e63284d9f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:http://localhost/peerconnections/72b83dc5-0980-4315-b997-0e8e63284d9f","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679729,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyOX0.damnIJBQgsMH3od6cnmXNCOKI5U-mOgnlsDMNKi0_go"} 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":"d8775e40-2406-11ef-9563-e3996e819f8c"},"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/72b83dc5-0980-4315-b997-0e8e63284d9f' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/72b83dc5-0980-4315-b997-0e8e63284d9f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"72b83dc5-0980-4315-b997-0e8e63284d9f","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F72b83dc5-0980-4315-b997-0e8e63284d9f': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F72b83dc5-0980-4315-b997-0e8e63284d9f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"211198fe-bbbd-4009-9395-9cec103589c7","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679729.2167234} 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"3bf7bfa6ebbf5c8f2b6ec505d9cfacd6","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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"864718c0-a755-4e3e-8d7d-add7921c17a5","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679729.217247} 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":"d8775e40-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} 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/55adead6-54e1-4fe5-93ef-66813a43fe8e"},{"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/57a9028d-8b52-4401-8c75-0640bfe88c25"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/72b83dc5-0980-4315-b997-0e8e63284d9f"}}},"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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e9c5c4709c7bbb4f78fd2faea708b031","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/55adead6-54e1-4fe5-93ef-66813a43fe8e"},{"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/57a9028d-8b52-4401-8c75-0640bfe88c25"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/72b83dc5-0980-4315-b997-0e8e63284d9f"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"72b83dc5-0980-4315-b997-0e8e63284d9f","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/72b83dc5-0980-4315-b997-0e8e63284d9f 204 68ms","method":"DELETE","requestID":"d8775e40-2406-11ef-9563-e3996e819f8c","responseTime":68,"status":204,"url":"/peerconnections/72b83dc5-0980-4315-b997-0e8e63284d9f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cd59dbbf-2430-410f-a0cf-87d770986d3d"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fcd59dbbf-2430-410f-a0cf-87d770986d3d': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fcd59dbbf-2430-410f-a0cf-87d770986d3d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"bfe716b9-d52d-4856-b550-32dc791c97df","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679729.2919476} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"342680e6-ef66-48fc-937c-f2a7ff2aeaad","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679729.2922122} 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":"db8a5b5d4dac9b4778f91296932f4c6c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/cd59dbbf-2430-410f-a0cf-87d770986d3d"} gateway-1 | {"time_local":"06/Jun/2024:13:15:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/cd59dbbf-2430-410f-a0cf-87d770986d3d HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.481","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"db8a5b5d4dac9b4778f91296932f4c6c"} gateway-1 | {"time_local":"06/Jun/2024:13:15:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1997","request_time":"4.281","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"d6cf7e3f50eb9d50ae85301275c27851"} experiment-1 | {"level":"info","message":"DELETE /experiments/cd59dbbf-2430-410f-a0cf-87d770986d3d 204 476ms","method":"DELETE","requestID":"db8a5b5d4dac9b4778f91296932f4c6c","responseTime":476,"status":204,"url":"/experiments/cd59dbbf-2430-410f-a0cf-87d770986d3d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 428ms","method":"POST","requestID":"3bf7bfa6ebbf5c8f2b6ec505d9cfacd6","responseTime":428,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15: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.433","http_referrer":"","http_user_agent":"node-fetch","requestID":"3bf7bfa6ebbf5c8f2b6ec505d9cfacd6"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 427ms","method":"POST","requestID":"e9c5c4709c7bbb4f78fd2faea708b031","responseTime":427,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15: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.433","http_referrer":"","http_user_agent":"node-fetch","requestID":"e9c5c4709c7bbb4f78fd2faea708b031"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyOX0.damnIJBQgsMH3od6cnmXNCOKI5U-mOgnlsDMNKi0_go","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"486a16a4bc1c8cb456a67b0334da62a0","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"06/Jun/2024:13:15:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1755","request_time":"2.808","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8e66291395eb191dd6370a04cc80e51e"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":250,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:29Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":250,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.071172,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:29Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679729,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyOX0.damnIJBQgsMH3od6cnmXNCOKI5U-mOgnlsDMNKi0_go"} 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":"486a16a4bc1c8cb456a67b0334da62a0"},"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/55adead6-54e1-4fe5-93ef-66813a43fe8e' 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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4c431da-5152-464c-8d41-a84800aebfc1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"064cf742-9a13-49b5-8226-f093183b9421","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679729.8676841} 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":"486a16a4bc1c8cb456a67b0334da62a0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/57a9028d-8b52-4401-8c75-0640bfe88c25' 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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"095ef0e3-ab3b-48e4-8901-362ad9b4dfd7","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679729.8757105} 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":"486a16a4bc1c8cb456a67b0334da62a0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4c431da-5152-464c-8d41-a84800aebfc1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"58ee252b-010d-4d62-b330-c9ad396e22f0","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679729.8889909} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b2d74213-0767-40f7-bfcd-592133cc636b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679729.8893154} 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":"486a16a4bc1c8cb456a67b0334da62a0"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4c431da-5152-464c-8d41-a84800aebfc1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4c431da-5152-464c-8d41-a84800aebfc1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:29.888959123Z"}]},"request_id":"b30e2e4c-1c5f-4042-849c-05d643b9a39d","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679729.8977075} 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":"486a16a4bc1c8cb456a67b0334da62a0"},"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":"06/Jun/2024:13:15:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.256","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"486a16a4bc1c8cb456a67b0334da62a0"} device-1 | {"level":"info","message":"POST /devices? 201 248ms","method":"POST","requestID":"486a16a4bc1c8cb456a67b0334da62a0","responseTime":248,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyOX0.damnIJBQgsMH3od6cnmXNCOKI5U-mOgnlsDMNKi0_go","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f37eac14f7b5201dfd517f3ca6ba1c8e","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":251,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:29Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":251,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.294496,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:29Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679729,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTcyOX0.damnIJBQgsMH3od6cnmXNCOKI5U-mOgnlsDMNKi0_go"} 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":"f37eac14f7b5201dfd517f3ca6ba1c8e"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff2b26c03-0f7a-4feb-a276-906879944cb6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"005064a6-2e14-4314-ab3a-108380a017c0","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679729.934854} 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":"f37eac14f7b5201dfd517f3ca6ba1c8e"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"47a6645b-91c7-4886-a966-03ea71bc7f79","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679729.942249} 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":"f37eac14f7b5201dfd517f3ca6ba1c8e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff2b26c03-0f7a-4feb-a276-906879944cb6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"f4bbb434-5da0-4b85-847e-9a0ccf4d7ae8","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679730.2340226} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7f4b1240-0a56-44d3-9394-41b933cdda67","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679730.234382} authorization-1 | {"level":"info","message":"POST /relations/update 200 295ms","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":"f37eac14f7b5201dfd517f3ca6ba1c8e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":295}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff2b26c03-0f7a-4feb-a276-906879944cb6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff2b26c03-0f7a-4feb-a276-906879944cb6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:30.233985543Z"}]},"request_id":"5e977b28-5dd9-4953-bf45-65e35bc07a4e","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679730.240919} 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":"f37eac14f7b5201dfd517f3ca6ba1c8e"},"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 334ms","method":"POST","requestID":"f37eac14f7b5201dfd517f3ca6ba1c8e","responseTime":334,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"06/Jun/2024:13:15:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.341","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f37eac14f7b5201dfd517f3ca6ba1c8e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczMH0.cNTBmM52PyrWzgB6bc624VlqNSKyvnSXLXuN3Vz1ByI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a3b7c0d0784159800564ffa6659db3af","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":252,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:30Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":252,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.259926,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:30Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/e4c431da-5152-464c-8d41-a84800aebfc1","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/e4c431da-5152-464c-8d41-a84800aebfc1","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679730,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczMH0.cNTBmM52PyrWzgB6bc624VlqNSKyvnSXLXuN3Vz1ByI"} 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":"a3b7c0d0784159800564ffa6659db3af"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4c431da-5152-464c-8d41-a84800aebfc1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4c431da-5152-464c-8d41-a84800aebfc1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:29.888959123Z"}]},"request_id":"5510a8e4-bfdf-406d-b709-953fea9af656","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679730.7316253} 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":"a3b7c0d0784159800564ffa6659db3af"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a6986add-2204-404d-8e8c-ab6638c216a9","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679730.7394023} 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":"a3b7c0d0784159800564ffa6659db3af"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4c431da-5152-464c-8d41-a84800aebfc1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4c431da-5152-464c-8d41-a84800aebfc1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:29.888959123Z"}]},"request_id":"317e241c-e5a2-4506-a18f-1ffa27d9aae5","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679730.7678423} 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":"a3b7c0d0784159800564ffa6659db3af"},"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/e4c431da-5152-464c-8d41-a84800aebfc1 200 55ms","method":"PATCH","requestID":"a3b7c0d0784159800564ffa6659db3af","responseTime":55,"status":200,"url":"/devices/e4c431da-5152-464c-8d41-a84800aebfc1"} gateway-1 | {"time_local":"06/Jun/2024:13:15:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/e4c431da-5152-464c-8d41-a84800aebfc1 HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.059","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"a3b7c0d0784159800564ffa6659db3af"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczMH0.cNTBmM52PyrWzgB6bc624VlqNSKyvnSXLXuN3Vz1ByI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b31456ca498befec1815a9a75bed5fd6","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":253,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:30Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":253,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.25644,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:30Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/e4c431da-5152-464c-8d41-a84800aebfc1","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/e4c431da-5152-464c-8d41-a84800aebfc1","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679730,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczMH0.cNTBmM52PyrWzgB6bc624VlqNSKyvnSXLXuN3Vz1ByI"} 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":"b31456ca498befec1815a9a75bed5fd6"},"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":"06/Jun/2024:13:15:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/e4c431da-5152-464c-8d41-a84800aebfc1/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":"b31456ca498befec1815a9a75bed5fd6"} device-1 | {"level":"info","message":"POST /devices/e4c431da-5152-464c-8d41-a84800aebfc1/websocket 200 23ms","method":"POST","requestID":"b31456ca498befec1815a9a75bed5fd6","responseTime":23,"status":200,"url":"/devices/e4c431da-5152-464c-8d41-a84800aebfc1/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/e4c431da-5152-464c-8d41-a84800aebfc1' 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"4ceaf46b89a522d2ceeee1d929535979","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"06/Jun/2024:13:15:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/f2b26c03-0f7a-4feb-a276-906879944cb6/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":"4ceaf46b89a522d2ceeee1d929535979"} device-1 | {"level":"info","message":"OPTIONS /devices/f2b26c03-0f7a-4feb-a276-906879944cb6/websocket 200 1ms","method":"OPTIONS","requestID":"4ceaf46b89a522d2ceeee1d929535979","responseTime":1,"status":200,"url":"/devices/f2b26c03-0f7a-4feb-a276-906879944cb6/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczMn0.sAxR65hVl0KhFrle06bXt58t0ghzS_1UR81te0afAfw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"79a7f3e68c96a56767bf915dff6ad36f","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":254,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:32Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":254,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.174097,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:32Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f2b26c03-0f7a-4feb-a276-906879944cb6","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/f2b26c03-0f7a-4feb-a276-906879944cb6","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679732,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczMn0.sAxR65hVl0KhFrle06bXt58t0ghzS_1UR81te0afAfw"} 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":"79a7f3e68c96a56767bf915dff6ad36f"},"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/f2b26c03-0f7a-4feb-a276-906879944cb6/websocket 200 22ms","method":"POST","requestID":"79a7f3e68c96a56767bf915dff6ad36f","responseTime":22,"status":200,"url":"/devices/f2b26c03-0f7a-4feb-a276-906879944cb6/websocket"} gateway-1 | {"time_local":"06/Jun/2024:13:15:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/f2b26c03-0f7a-4feb-a276-906879944cb6/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":"79a7f3e68c96a56767bf915dff6ad36f"} device-1 | {"level":"info","message":"device 'http://localhost/devices/f2b26c03-0f7a-4feb-a276-906879944cb6' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczMn0.sAxR65hVl0KhFrle06bXt58t0ghzS_1UR81te0afAfw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"6b9f273e99ae6a1139136f6c08f26b4d","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":255,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:32Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":255,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.20625,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e4c431da-5152-464c-8d41-a84800aebfc1","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/e4c431da-5152-464c-8d41-a84800aebfc1","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679732,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczMn0.sAxR65hVl0KhFrle06bXt58t0ghzS_1UR81te0afAfw"} 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":"6b9f273e99ae6a1139136f6c08f26b4d"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4c431da-5152-464c-8d41-a84800aebfc1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4c431da-5152-464c-8d41-a84800aebfc1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:29.888959123Z"}]},"request_id":"6185412e-2b61-4162-a2c2-9206d969c44a","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679732.3384008} 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":"6b9f273e99ae6a1139136f6c08f26b4d"},"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":"06/Jun/2024:13:15:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e4c431da-5152-464c-8d41-a84800aebfc1? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6b9f273e99ae6a1139136f6c08f26b4d"} device-1 | {"level":"info","message":"GET /devices/e4c431da-5152-464c-8d41-a84800aebfc1? 200 18ms","method":"GET","requestID":"6b9f273e99ae6a1139136f6c08f26b4d","responseTime":18,"status":200,"url":"/devices/e4c431da-5152-464c-8d41-a84800aebfc1?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczMn0.sAxR65hVl0KhFrle06bXt58t0ghzS_1UR81te0afAfw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"82a1c0330df3bbcdff222c69ad2fd4f1","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":256,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:32Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":256,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.64504,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f2b26c03-0f7a-4feb-a276-906879944cb6","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/f2b26c03-0f7a-4feb-a276-906879944cb6","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679732,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczMn0.sAxR65hVl0KhFrle06bXt58t0ghzS_1UR81te0afAfw"} 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":"82a1c0330df3bbcdff222c69ad2fd4f1"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff2b26c03-0f7a-4feb-a276-906879944cb6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff2b26c03-0f7a-4feb-a276-906879944cb6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:30.233985543Z"}]},"request_id":"75a6e907-77fc-4525-a6b8-d67cabbeca6c","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679732.366203} 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":"82a1c0330df3bbcdff222c69ad2fd4f1"},"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/f2b26c03-0f7a-4feb-a276-906879944cb6? 200 20ms","method":"GET","requestID":"82a1c0330df3bbcdff222c69ad2fd4f1","responseTime":20,"status":200,"url":"/devices/f2b26c03-0f7a-4feb-a276-906879944cb6?"} gateway-1 | {"time_local":"06/Jun/2024:13:15:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f2b26c03-0f7a-4feb-a276-906879944cb6? 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":"82a1c0330df3bbcdff222c69ad2fd4f1"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczMn0.sAxR65hVl0KhFrle06bXt58t0ghzS_1UR81te0afAfw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"7c4e88c27cd1a3e7d348159c055e81d6","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:36466","level":"info","msg":"Received request.","req_id":257,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:32Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":257,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.155714,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:32Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679732,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczMn0.sAxR65hVl0KhFrle06bXt58t0ghzS_1UR81te0afAfw"} 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":"7c4e88c27cd1a3e7d348159c055e81d6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dad21bab-39a8-47fa-a3f1-90ff58017d2e"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dad21bab-39a8-47fa-a3f1-90ff58017d2e"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dad21bab-39a8-47fa-a3f1-90ff58017d2e"},"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:36466","level":"info","msg":"Received request.","req_id":258,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:32Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":258,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.255993,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e4c431da-5152-464c-8d41-a84800aebfc1","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/e4c431da-5152-464c-8d41-a84800aebfc1","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679732,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczMn0.sAxR65hVl0KhFrle06bXt58t0ghzS_1UR81te0afAfw"} 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":"da89ea90-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":259,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:32Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":259,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.56871,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f2b26c03-0f7a-4feb-a276-906879944cb6","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/f2b26c03-0f7a-4feb-a276-906879944cb6","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679732,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczMn0.sAxR65hVl0KhFrle06bXt58t0ghzS_1UR81te0afAfw"} 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":"da8a5fc0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4c431da-5152-464c-8d41-a84800aebfc1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4c431da-5152-464c-8d41-a84800aebfc1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:29.888959123Z"}]},"request_id":"5ee45399-57b4-4f80-8011-0e5eb2d70429","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679732.678987} 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":"da89ea90-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff2b26c03-0f7a-4feb-a276-906879944cb6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff2b26c03-0f7a-4feb-a276-906879944cb6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:30.233985543Z"}]},"request_id":"5feac0b0-4a94-439e-ac9e-20e4023479d4","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679732.6847715} 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":"da8a5fc0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"GET /devices/e4c431da-5152-464c-8d41-a84800aebfc1? 200 23ms","method":"GET","requestID":"da89ea90-2406-11ef-9563-e3996e819f8c","responseTime":23,"status":200,"url":"/devices/e4c431da-5152-464c-8d41-a84800aebfc1?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f2b26c03-0f7a-4feb-a276-906879944cb6? 200 24ms","method":"GET","requestID":"da8a5fc0-2406-11ef-9563-e3996e819f8c","responseTime":24,"status":200,"url":"/devices/f2b26c03-0f7a-4feb-a276-906879944cb6?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dad21bab-39a8-47fa-a3f1-90ff58017d2e"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dad21bab-39a8-47fa-a3f1-90ff58017d2e"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dad21bab-39a8-47fa-a3f1-90ff58017d2e"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dad21bab-39a8-47fa-a3f1-90ff58017d2e"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dad21bab-39a8-47fa-a3f1-90ff58017d2e"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dad21bab-39a8-47fa-a3f1-90ff58017d2e"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dad21bab-39a8-47fa-a3f1-90ff58017d2e"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dad21bab-39a8-47fa-a3f1-90ff58017d2e"},"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/dad21bab-39a8-47fa-a3f1-90ff58017d2e"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":260,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:32Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":260,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.398791,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:32Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":261,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e4c431da-5152-464c-8d41-a84800aebfc1","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/e4c431da-5152-464c-8d41-a84800aebfc1","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679732,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczMn0.sAxR65hVl0KhFrle06bXt58t0ghzS_1UR81te0afAfw"} 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":"da96bbd0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":261,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.600633,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f2b26c03-0f7a-4feb-a276-906879944cb6","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/f2b26c03-0f7a-4feb-a276-906879944cb6","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679732,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczMn0.sAxR65hVl0KhFrle06bXt58t0ghzS_1UR81te0afAfw"} 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":"da973100-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4c431da-5152-464c-8d41-a84800aebfc1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4c431da-5152-464c-8d41-a84800aebfc1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:29.888959123Z"}]},"request_id":"9b7fa914-4158-404d-abc7-92b81cc6fead","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679732.767594} 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":"da96bbd0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff2b26c03-0f7a-4feb-a276-906879944cb6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff2b26c03-0f7a-4feb-a276-906879944cb6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:30.233985543Z"}]},"request_id":"98bdfeaf-ffbd-440e-b3ab-f237578d7676","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679732.7690403} 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":"da973100-2406-11ef-9563-e3996e819f8c"},"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/e4c431da-5152-464c-8d41-a84800aebfc1? 200 28ms","method":"GET","requestID":"da96bbd0-2406-11ef-9563-e3996e819f8c","responseTime":28,"status":200,"url":"/devices/e4c431da-5152-464c-8d41-a84800aebfc1?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f2b26c03-0f7a-4feb-a276-906879944cb6? 200 28ms","method":"GET","requestID":"da973100-2406-11ef-9563-e3996e819f8c","responseTime":28,"status":200,"url":"/devices/f2b26c03-0f7a-4feb-a276-906879944cb6?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":262,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:32Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":262,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.193808,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:32Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/e4c431da-5152-464c-8d41-a84800aebfc1","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e4c431da-5152-464c-8d41-a84800aebfc1","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"da9bebf0-2406-11ef-9563-e3996e819f8c"},"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/e4c431da-5152-464c-8d41-a84800aebfc1/signaling 200 12ms","method":"POST","requestID":"da9bebf0-2406-11ef-9563-e3996e819f8c","responseTime":12,"status":200,"url":"/devices/e4c431da-5152-464c-8d41-a84800aebfc1/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":263,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:32Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":263,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.180056,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:32Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/f2b26c03-0f7a-4feb-a276-906879944cb6","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f2b26c03-0f7a-4feb-a276-906879944cb6","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"da9e35e0-2406-11ef-9563-e3996e819f8c"},"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/f2b26c03-0f7a-4feb-a276-906879944cb6/signaling 200 11ms","method":"POST","requestID":"da9e35e0-2406-11ef-9563-e3996e819f8c","responseTime":11,"status":200,"url":"/devices/f2b26c03-0f7a-4feb-a276-906879944cb6/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dad21bab-39a8-47fa-a3f1-90ff58017d2e"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dad21bab-39a8-47fa-a3f1-90ff58017d2e"},"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":"de605929-9c1f-4b89-a4f6-77e675f5c77a"},{"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":"de646966-50d1-4616-8d43-0164da018f93"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"d8925376-b8db-4f06-bd4c-344c92aeea6b"}]},"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/e4c431da-5152-464c-8d41-a84800aebfc1"},{"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/f2b26c03-0f7a-4feb-a276-906879944cb6"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":264,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:32Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":264,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.247367,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:32Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679732,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczMn0.sAxR65hVl0KhFrle06bXt58t0ghzS_1UR81te0afAfw"} 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":"daa0cdf0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fdad21bab-39a8-47fa-a3f1-90ff58017d2e#owner@http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fdad21bab-39a8-47fa-a3f1-90ff58017d2e","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"6c3789ea-a9a9-4ed6-87f0-bfc3c5389883","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679733.045695} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"049d4d4b-cfcb-4078-8f6d-a1046c64d91f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679733.0461798} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"34b80ae7-2a3b-4130-bcc0-5c49190b5551","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679733.0492127} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9399355a-d985-4c60-bfef-1c8f888058c6","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679733.0494852} authorization-1 | {"level":"info","message":"POST /relations/update 200 292ms","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":"7c4e88c27cd1a3e7d348159c055e81d6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":292}} authorization-1 | {"level":"info","message":"POST /relations/update 200 222ms","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":"daa0cdf0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":222}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/dad21bab-39a8-47fa-a3f1-90ff58017d2e","user":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"06/Jun/2024:13:15:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.691","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7c4e88c27cd1a3e7d348159c055e81d6"} experiment-1 | {"level":"info","message":"POST /experiments? 201 683ms","method":"POST","requestID":"7c4e88c27cd1a3e7d348159c055e81d6","responseTime":683,"status":201,"url":"/experiments?"} 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/a7611807-f146-4aee-9c05-03dc891804a6'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/a7611807-f146-4aee-9c05-03dc891804a6'"} 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 255ms","method":"POST","requestID":"daa0cdf0-2406-11ef-9563-e3996e819f8c","responseTime":255,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczM30.FbTOqgpyzf-nE2xg3zC3t7NhCrYsCgfbXb9fkqiIyL8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"cf05834693bcfb18e9f2c3cd7350634d","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":265,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:33Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":265,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.578374,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e4c431da-5152-464c-8d41-a84800aebfc1","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/e4c431da-5152-464c-8d41-a84800aebfc1","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679733,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczM30.FbTOqgpyzf-nE2xg3zC3t7NhCrYsCgfbXb9fkqiIyL8"} 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":"cf05834693bcfb18e9f2c3cd7350634d"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4c431da-5152-464c-8d41-a84800aebfc1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe4c431da-5152-464c-8d41-a84800aebfc1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:29.888959123Z"}]},"request_id":"75b027a6-b4c7-4ce4-9e49-55573bea6a2a","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679733.091896} 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":"cf05834693bcfb18e9f2c3cd7350634d"},"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":"06/Jun/2024:13:15:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e4c431da-5152-464c-8d41-a84800aebfc1? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.029","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cf05834693bcfb18e9f2c3cd7350634d"} device-1 | {"level":"info","message":"GET /devices/e4c431da-5152-464c-8d41-a84800aebfc1? 200 22ms","method":"GET","requestID":"cf05834693bcfb18e9f2c3cd7350634d","responseTime":22,"status":200,"url":"/devices/e4c431da-5152-464c-8d41-a84800aebfc1?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczM30.FbTOqgpyzf-nE2xg3zC3t7NhCrYsCgfbXb9fkqiIyL8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"97ab759c5af34e4b8d9377dc024270df","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":266,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:33Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":266,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.681188,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f2b26c03-0f7a-4feb-a276-906879944cb6","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/f2b26c03-0f7a-4feb-a276-906879944cb6","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679733,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczM30.FbTOqgpyzf-nE2xg3zC3t7NhCrYsCgfbXb9fkqiIyL8"} 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":"97ab759c5af34e4b8d9377dc024270df"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dad21bab-39a8-47fa-a3f1-90ff58017d2e"},"level":"info","message":"Successfully created peerconnections for experiment"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff2b26c03-0f7a-4feb-a276-906879944cb6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff2b26c03-0f7a-4feb-a276-906879944cb6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:30.233985543Z"}]},"request_id":"16fc1f47-6466-4684-9450-9da97d8f78c6","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679733.1140356} 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":"97ab759c5af34e4b8d9377dc024270df"},"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":"06/Jun/2024:13:15:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f2b26c03-0f7a-4feb-a276-906879944cb6? 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":"97ab759c5af34e4b8d9377dc024270df"} device-1 | {"level":"info","message":"GET /devices/f2b26c03-0f7a-4feb-a276-906879944cb6? 200 14ms","method":"GET","requestID":"97ab759c5af34e4b8d9377dc024270df","responseTime":14,"status":200,"url":"/devices/f2b26c03-0f7a-4feb-a276-906879944cb6?"} device-1 | {"data":{"peerconnection":"a7611807-f146-4aee-9c05-03dc891804a6","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/a7611807-f146-4aee-9c05-03dc891804a6' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a7611807-f146-4aee-9c05-03dc891804a6","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"0646d82bd351299489187b8d092b57c2","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/e4c431da-5152-464c-8d41-a84800aebfc1"},{"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/f2b26c03-0f7a-4feb-a276-906879944cb6"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/a7611807-f146-4aee-9c05-03dc891804a6"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 9ms","method":"POST","requestID":"0646d82bd351299489187b8d092b57c2","responseTime":9,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15: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.013","http_referrer":"","http_user_agent":"node-fetch","requestID":"0646d82bd351299489187b8d092b57c2"} device-1 | {"data":{"peerconnection":"a7611807-f146-4aee-9c05-03dc891804a6","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"a7611807-f146-4aee-9c05-03dc891804a6","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/a7611807-f146-4aee-9c05-03dc891804a6' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a7611807-f146-4aee-9c05-03dc891804a6","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"7af380ab3a8ce5bddf1c6a0c994c920e","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/e4c431da-5152-464c-8d41-a84800aebfc1"},{"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/f2b26c03-0f7a-4feb-a276-906879944cb6"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/a7611807-f146-4aee-9c05-03dc891804a6"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":267,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:34Z"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","contextual_tuples":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa7611807-f146-4aee-9c05-03dc891804a6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"619cd051-3b87-4333-ae72-fc2af8b54402","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679734.207196} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":267,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":5.401847,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/a7611807-f146-4aee-9c05-03dc891804a6","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/a7611807-f146-4aee-9c05-03dc891804a6","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":"db73fc70-2406-11ef-9563-e3996e819f8c"},"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/a7611807-f146-4aee-9c05-03dc891804a6 200 16ms","method":"GET","requestID":"db73fc70-2406-11ef-9563-e3996e819f8c","responseTime":16,"status":200,"url":"/peerconnections/a7611807-f146-4aee-9c05-03dc891804a6"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczNH0.eUiN_dEwz4ycBtzKaRZ-8KrGVBuJC7IeJgibhYbHya8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"6c9079a8fa0dc639706a856d2ca4eeb5","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/dad21bab-39a8-47fa-a3f1-90ff58017d2e"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":268,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:34Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":268,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.981745,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/dad21bab-39a8-47fa-a3f1-90ff58017d2e","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/dad21bab-39a8-47fa-a3f1-90ff58017d2e","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679734,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczNH0.eUiN_dEwz4ycBtzKaRZ-8KrGVBuJC7IeJgibhYbHya8"} 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":"6c9079a8fa0dc639706a856d2ca4eeb5"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 330ms","method":"POST","requestID":"7af380ab3a8ce5bddf1c6a0c994c920e","responseTime":330,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15: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.333","http_referrer":"","http_user_agent":"node-fetch","requestID":"7af380ab3a8ce5bddf1c6a0c994c920e"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/dad21bab-39a8-47fa-a3f1-90ff58017d2e"} gateway-1 | {"time_local":"06/Jun/2024:13:15:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/dad21bab-39a8-47fa-a3f1-90ff58017d2e HTTP/1.1","status": "200","body_bytes_sent":"1364","request_time":"0.249","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6c9079a8fa0dc639706a856d2ca4eeb5"} experiment-1 | {"level":"info","message":"GET /experiments/dad21bab-39a8-47fa-a3f1-90ff58017d2e 200 244ms","method":"GET","requestID":"6c9079a8fa0dc639706a856d2ca4eeb5","responseTime":244,"status":200,"url":"/experiments/dad21bab-39a8-47fa-a3f1-90ff58017d2e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczNH0.eUiN_dEwz4ycBtzKaRZ-8KrGVBuJC7IeJgibhYbHya8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e05cf7caf138ac2a1a9adfe1f26b7763","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/dad21bab-39a8-47fa-a3f1-90ff58017d2e"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":269,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:34Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":269,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.755797,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:34Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/dad21bab-39a8-47fa-a3f1-90ff58017d2e","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/dad21bab-39a8-47fa-a3f1-90ff58017d2e","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679734,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczNH0.eUiN_dEwz4ycBtzKaRZ-8KrGVBuJC7IeJgibhYbHya8"} 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":"e05cf7caf138ac2a1a9adfe1f26b7763"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dad21bab-39a8-47fa-a3f1-90ff58017d2e"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":270,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:34Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":270,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.197867,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:34Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/a7611807-f146-4aee-9c05-03dc891804a6","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:http://localhost/peerconnections/a7611807-f146-4aee-9c05-03dc891804a6","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679734,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczNH0.eUiN_dEwz4ycBtzKaRZ-8KrGVBuJC7IeJgibhYbHya8"} 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":"dba879f0-2406-11ef-9563-e3996e819f8c"},"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/a7611807-f146-4aee-9c05-03dc891804a6' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/a7611807-f146-4aee-9c05-03dc891804a6' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a7611807-f146-4aee-9c05-03dc891804a6","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"9b977a7c4fad9c1e545d3b3417a3eefa","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"31401081ebb21c09aa2667616d257dcb","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":"closed","url":"http://localhost/devices/e4c431da-5152-464c-8d41-a84800aebfc1"},{"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/f2b26c03-0f7a-4feb-a276-906879944cb6"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/a7611807-f146-4aee-9c05-03dc891804a6"}}},"level":"info","message":"received a callback"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa7611807-f146-4aee-9c05-03dc891804a6': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa7611807-f146-4aee-9c05-03dc891804a6","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"5ca15bd0-f598-4ee4-bd5c-bfb37c2192b1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679734.57179} 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/e4c431da-5152-464c-8d41-a84800aebfc1"},{"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/f2b26c03-0f7a-4feb-a276-906879944cb6"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/a7611807-f146-4aee-9c05-03dc891804a6"}}},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bc008b93-b9b8-4c89-a85f-5c809f7ac42d","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679734.572095} 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":"dba879f0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":13}} device-1 | {"data":{"peerconnection":"a7611807-f146-4aee-9c05-03dc891804a6","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/a7611807-f146-4aee-9c05-03dc891804a6 204 323ms","method":"DELETE","requestID":"dba879f0-2406-11ef-9563-e3996e819f8c","responseTime":323,"status":204,"url":"/peerconnections/a7611807-f146-4aee-9c05-03dc891804a6"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/dad21bab-39a8-47fa-a3f1-90ff58017d2e"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fdad21bab-39a8-47fa-a3f1-90ff58017d2e': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fdad21bab-39a8-47fa-a3f1-90ff58017d2e","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"edc93b8c-8f8a-43c5-95b0-c793fa25e99c","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679734.904993} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d9a65a8e-bf61-4703-a769-af5db91ca280","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679734.9053476} 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":"e05cf7caf138ac2a1a9adfe1f26b7763"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":17}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/dad21bab-39a8-47fa-a3f1-90ff58017d2e"} gateway-1 | {"time_local":"06/Jun/2024:13:15:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/dad21bab-39a8-47fa-a3f1-90ff58017d2e HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.714","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e05cf7caf138ac2a1a9adfe1f26b7763"} experiment-1 | {"level":"info","message":"DELETE /experiments/dad21bab-39a8-47fa-a3f1-90ff58017d2e 204 712ms","method":"DELETE","requestID":"e05cf7caf138ac2a1a9adfe1f26b7763","responseTime":712,"status":204,"url":"/experiments/dad21bab-39a8-47fa-a3f1-90ff58017d2e"} gateway-1 | {"time_local":"06/Jun/2024:13:15:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1996","request_time":"4.440","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"a46217c22ae113f3958c876943076fd5"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 677ms","method":"POST","requestID":"9b977a7c4fad9c1e545d3b3417a3eefa","responseTime":677,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15: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.681","http_referrer":"","http_user_agent":"node-fetch","requestID":"9b977a7c4fad9c1e545d3b3417a3eefa"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 676ms","method":"POST","requestID":"31401081ebb21c09aa2667616d257dcb","responseTime":676,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15: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.682","http_referrer":"","http_user_agent":"node-fetch","requestID":"31401081ebb21c09aa2667616d257dcb"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczNX0.dvCI_x4XeaxEIo-jRDCQ9UInw1dOreSh9kQKctmf_EQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1f24535b4cf102aa1536c1a7b61fcd8c","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":271,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:35Z"} gateway-1 | {"time_local":"06/Jun/2024:13:15:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1755","request_time":"2.953","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"88307711ba87675c00733cac564297f4"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":271,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.07054,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:35Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679735,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczNX0.dvCI_x4XeaxEIo-jRDCQ9UInw1dOreSh9kQKctmf_EQ"} 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":"1f24535b4cf102aa1536c1a7b61fcd8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/e4c431da-5152-464c-8d41-a84800aebfc1' 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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bfad5b0-509c-48d3-9b69-d687d6bd9f3d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"2a9800e5-aeaa-416d-a7e8-e45ce1da2e25","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679735.5467017} 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":"1f24535b4cf102aa1536c1a7b61fcd8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/f2b26c03-0f7a-4feb-a276-906879944cb6' 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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"95426653-c1d3-4c4b-bccb-fdfd3fe5b0c6","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679735.5544202} 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":"1f24535b4cf102aa1536c1a7b61fcd8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bfad5b0-509c-48d3-9b69-d687d6bd9f3d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"3d5118a2-37c9-4db0-afa0-ea2d054592d9","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679735.5676205} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"62ac79c1-aa38-4952-9930-4f211551400e","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679735.5678859} 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":"1f24535b4cf102aa1536c1a7b61fcd8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bfad5b0-509c-48d3-9b69-d687d6bd9f3d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bfad5b0-509c-48d3-9b69-d687d6bd9f3d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:35.567583490Z"}]},"request_id":"e2d208fe-8e6d-4c12-bc95-e46a94bec550","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679735.574043} 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":"1f24535b4cf102aa1536c1a7b61fcd8c"},"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":"06/Jun/2024:13:15: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.332","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1f24535b4cf102aa1536c1a7b61fcd8c"} device-1 | {"level":"info","message":"POST /devices? 201 326ms","method":"POST","requestID":"1f24535b4cf102aa1536c1a7b61fcd8c","responseTime":326,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczNX0.dvCI_x4XeaxEIo-jRDCQ9UInw1dOreSh9kQKctmf_EQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"d80fcb5e054b6ea213afd833df6f58c0","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":272,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:35Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":272,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.224786,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:35Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679735,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczNX0.dvCI_x4XeaxEIo-jRDCQ9UInw1dOreSh9kQKctmf_EQ"} 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":"d80fcb5e054b6ea213afd833df6f58c0"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b4946c2-7d21-4d0e-8e96-32584eebddfe","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"8a0e8d19-5130-48e1-867e-44e029c89c30","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679735.611242} 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":"d80fcb5e054b6ea213afd833df6f58c0"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5fbe5526-8c98-46b7-b429-8e14d6e98804","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679735.619527} 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":"d80fcb5e054b6ea213afd833df6f58c0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b4946c2-7d21-4d0e-8e96-32584eebddfe","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"2b040ee6-1a0f-4b07-a0f9-ddbec828ac7c","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679735.9061875} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0cddca2a-30cf-4878-bb60-87bcdd8c401f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679735.9065108} authorization-1 | {"level":"info","message":"POST /relations/update 200 290ms","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":"d80fcb5e054b6ea213afd833df6f58c0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":290}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b4946c2-7d21-4d0e-8e96-32584eebddfe","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b4946c2-7d21-4d0e-8e96-32584eebddfe","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:35.906160504Z"}]},"request_id":"0514e4bd-23b1-46ac-8bc1-52126d0ee9e2","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679735.9129314} 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":"d80fcb5e054b6ea213afd833df6f58c0"},"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":"06/Jun/2024:13:15: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.337","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d80fcb5e054b6ea213afd833df6f58c0"} device-1 | {"level":"info","message":"POST /devices? 201 329ms","method":"POST","requestID":"d80fcb5e054b6ea213afd833df6f58c0","responseTime":329,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczNn0.xTl79d1wWGGX665EDJge4lCNh41A2hhJjFgnviABnp8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2a4b0f884415bb4b1cc1924b238b0b79","responseTime":4,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczNn0.xTl79d1wWGGX665EDJge4lCNh41A2hhJjFgnviABnp8","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"29eb99896db1e9206aa618c137e519c0","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":273,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:36Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":273,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.982222,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:36Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679736,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczNn0.xTl79d1wWGGX665EDJge4lCNh41A2hhJjFgnviABnp8"} 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":"2a4b0f884415bb4b1cc1924b238b0b79"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":274,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:36Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":274,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.651019,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:36Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679736,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczNn0.xTl79d1wWGGX665EDJge4lCNh41A2hhJjFgnviABnp8"} 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":"29eb99896db1e9206aa618c137e519c0"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bfad5b0-509c-48d3-9b69-d687d6bd9f3d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bfad5b0-509c-48d3-9b69-d687d6bd9f3d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:35.567583490Z"}]},"request_id":"e48e9dce-b98d-48b3-a5b6-7c90b7c8d936","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679736.4025655} 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":"2a4b0f884415bb4b1cc1924b238b0b79"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b4946c2-7d21-4d0e-8e96-32584eebddfe","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b4946c2-7d21-4d0e-8e96-32584eebddfe","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:35.906160504Z"}]},"request_id":"5a8bb5e4-c2fd-492b-99ca-12351b602c7f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679736.403245} 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":"29eb99896db1e9206aa618c137e519c0"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1b4d3986-bb89-4f78-a3a8-87779f9956e1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679736.4079108} 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":"2a4b0f884415bb4b1cc1924b238b0b79"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3d354784-bf63-4747-86c0-7bdd825df707","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679736.4091363} 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":"29eb99896db1e9206aa618c137e519c0"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b4946c2-7d21-4d0e-8e96-32584eebddfe","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b4946c2-7d21-4d0e-8e96-32584eebddfe","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:35.906160504Z"}]},"request_id":"04602109-2a37-48b3-8692-09ae4f915cf3","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679736.413423} 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":"29eb99896db1e9206aa618c137e519c0"},"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":"06/Jun/2024:13:15:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.030","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"29eb99896db1e9206aa618c137e519c0"} device-1 | {"level":"info","message":"PATCH /devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe 200 22ms","method":"PATCH","requestID":"29eb99896db1e9206aa618c137e519c0","responseTime":22,"status":200,"url":"/devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczNn0.xTl79d1wWGGX665EDJge4lCNh41A2hhJjFgnviABnp8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e32e86dc6195993113a7b278240e7421","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":275,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:36Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":275,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.037599,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:36Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679736,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczNn0.xTl79d1wWGGX665EDJge4lCNh41A2hhJjFgnviABnp8"} 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":"e32e86dc6195993113a7b278240e7421"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bfad5b0-509c-48d3-9b69-d687d6bd9f3d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bfad5b0-509c-48d3-9b69-d687d6bd9f3d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:35.567583490Z"}]},"request_id":"568819dc-cf1e-4d57-8293-5021a232f180","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679736.430351} 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":"2a4b0f884415bb4b1cc1924b238b0b79"},"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":"06/Jun/2024:13:15:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.047","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"2a4b0f884415bb4b1cc1924b238b0b79"} device-1 | {"level":"info","message":"PATCH /devices/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d 200 41ms","method":"PATCH","requestID":"2a4b0f884415bb4b1cc1924b238b0b79","responseTime":41,"status":200,"url":"/devices/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczNn0.xTl79d1wWGGX665EDJge4lCNh41A2hhJjFgnviABnp8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"290090c3d053e59e9da4d952f463f262","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"06/Jun/2024:13:15:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe/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":"e32e86dc6195993113a7b278240e7421"} device-1 | {"level":"info","message":"POST /devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe/websocket 200 19ms","method":"POST","requestID":"e32e86dc6195993113a7b278240e7421","responseTime":19,"status":200,"url":"/devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe/websocket"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":276,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:36Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":276,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.729076,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:36Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679736,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczNn0.xTl79d1wWGGX665EDJge4lCNh41A2hhJjFgnviABnp8"} 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":"290090c3d053e59e9da4d952f463f262"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"06/Jun/2024:13:15:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.014","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"290090c3d053e59e9da4d952f463f262"} device-1 | {"level":"info","message":"POST /devices/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d/websocket 200 10ms","method":"POST","requestID":"290090c3d053e59e9da4d952f463f262","responseTime":10,"status":200,"url":"/devices/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczNn0.xTl79d1wWGGX665EDJge4lCNh41A2hhJjFgnviABnp8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"20230c279e8a2b43b6526ea099ecf24c","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":277,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:36Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":277,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.658923,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679736,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczNn0.xTl79d1wWGGX665EDJge4lCNh41A2hhJjFgnviABnp8"} 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":"20230c279e8a2b43b6526ea099ecf24c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bfad5b0-509c-48d3-9b69-d687d6bd9f3d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bfad5b0-509c-48d3-9b69-d687d6bd9f3d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:35.567583490Z"}]},"request_id":"48ac54ad-d6a1-42a3-bea3-e93f8757e458","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679736.4691608} 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":"20230c279e8a2b43b6526ea099ecf24c"},"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":"06/Jun/2024:13:15:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"20230c279e8a2b43b6526ea099ecf24c"} device-1 | {"level":"info","message":"GET /devices/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d? 200 10ms","method":"GET","requestID":"20230c279e8a2b43b6526ea099ecf24c","responseTime":10,"status":200,"url":"/devices/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczNn0.xTl79d1wWGGX665EDJge4lCNh41A2hhJjFgnviABnp8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e855475a44b4e40d0b44b35394cb9da3","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":278,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:36Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":278,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.044151,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679736,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczNn0.xTl79d1wWGGX665EDJge4lCNh41A2hhJjFgnviABnp8"} 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":"e855475a44b4e40d0b44b35394cb9da3"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b4946c2-7d21-4d0e-8e96-32584eebddfe","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b4946c2-7d21-4d0e-8e96-32584eebddfe","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:35.906160504Z"}]},"request_id":"a91f25c1-046a-4c4d-8719-073af2f05edf","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679736.4854527} 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":"e855475a44b4e40d0b44b35394cb9da3"},"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":"06/Jun/2024:13:15:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e855475a44b4e40d0b44b35394cb9da3"} device-1 | {"level":"info","message":"GET /devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe? 200 12ms","method":"GET","requestID":"e855475a44b4e40d0b44b35394cb9da3","responseTime":12,"status":200,"url":"/devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczNn0.xTl79d1wWGGX665EDJge4lCNh41A2hhJjFgnviABnp8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d46680ce07351f950c386ebcfbcbf97c","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:36466","level":"info","msg":"Received request.","req_id":279,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:36Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":279,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.860014,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:36Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679736,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczNn0.xTl79d1wWGGX665EDJge4lCNh41A2hhJjFgnviABnp8"} 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":"d46680ce07351f950c386ebcfbcbf97c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291"},"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:36466","level":"info","msg":"Received request.","req_id":280,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:36Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":280,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.257791,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:36Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":281,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679736,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczNn0.xTl79d1wWGGX665EDJge4lCNh41A2hhJjFgnviABnp8"} 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":"dd00de00-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":281,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.384624,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679736,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczNn0.xTl79d1wWGGX665EDJge4lCNh41A2hhJjFgnviABnp8"} 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":"dd012c20-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bfad5b0-509c-48d3-9b69-d687d6bd9f3d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bfad5b0-509c-48d3-9b69-d687d6bd9f3d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:35.567583490Z"}]},"request_id":"e93177f9-265b-4256-9e6c-f47e74b875dc","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679736.8123233} 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":"dd00de00-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b4946c2-7d21-4d0e-8e96-32584eebddfe","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b4946c2-7d21-4d0e-8e96-32584eebddfe","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:35.906160504Z"}]},"request_id":"6fcc69f0-737d-4b7e-a4d4-9de11f56ae25","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679736.8136127} 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":"dd012c20-2406-11ef-9563-e3996e819f8c"},"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/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d? 200 20ms","method":"GET","requestID":"dd00de00-2406-11ef-9563-e3996e819f8c","responseTime":20,"status":200,"url":"/devices/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe? 200 19ms","method":"GET","requestID":"dd012c20-2406-11ef-9563-e3996e819f8c","responseTime":19,"status":200,"url":"/devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291"},"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/3927cadc-ca2e-4eaa-a44f-d55121c67291"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":282,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:36Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":282,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.152095,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:36Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":283,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679736,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczNn0.xTl79d1wWGGX665EDJge4lCNh41A2hhJjFgnviABnp8"} 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":"dd0c9dd0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":283,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.121398,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679736,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczNn0.xTl79d1wWGGX665EDJge4lCNh41A2hhJjFgnviABnp8"} 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":"dd0d1300-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bfad5b0-509c-48d3-9b69-d687d6bd9f3d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bfad5b0-509c-48d3-9b69-d687d6bd9f3d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:35.567583490Z"}]},"request_id":"fb75f475-93d9-4612-a69b-5b7f0b4609bf","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679736.8929267} 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":"dd0c9dd0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b4946c2-7d21-4d0e-8e96-32584eebddfe","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b4946c2-7d21-4d0e-8e96-32584eebddfe","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:35.906160504Z"}]},"request_id":"e80d3068-7596-408a-9890-aa012c8db3b9","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679736.8945105} 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":"dd0d1300-2406-11ef-9563-e3996e819f8c"},"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/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d? 200 25ms","method":"GET","requestID":"dd0c9dd0-2406-11ef-9563-e3996e819f8c","responseTime":25,"status":200,"url":"/devices/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe? 200 24ms","method":"GET","requestID":"dd0d1300-2406-11ef-9563-e3996e819f8c","responseTime":24,"status":200,"url":"/devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":284,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:36Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":284,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.148208,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:36Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd1131b0-2406-11ef-9563-e3996e819f8c"},"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/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d/signaling 200 11ms","method":"POST","requestID":"dd1131b0-2406-11ef-9563-e3996e819f8c","responseTime":11,"status":200,"url":"/devices/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":285,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:36Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":285,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.052128,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:36Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd135490-2406-11ef-9563-e3996e819f8c"},"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/1b4946c2-7d21-4d0e-8e96-32584eebddfe/signaling 200 10ms","method":"POST","requestID":"dd135490-2406-11ef-9563-e3996e819f8c","responseTime":10,"status":200,"url":"/devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291"},"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":"f2a1fc45-1593-4fe9-a281-666633c05c0f"},{"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":"47de05f5-1ff5-4637-80b8-49e2eea14a0c"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"54b76fae-cd19-4bcd-9be1-9ea0aea89dd7"}]},"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/1b4946c2-7d21-4d0e-8e96-32584eebddfe"},{"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/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":286,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:36Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":286,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.300541,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:36Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679736,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczNn0.xTl79d1wWGGX665EDJge4lCNh41A2hhJjFgnviABnp8"} 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":"dd157770-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3927cadc-ca2e-4eaa-a44f-d55121c67291#owner@http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3927cadc-ca2e-4eaa-a44f-d55121c67291","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"71ea80a6-5057-4a7d-94dc-dadb9469251e","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679737.18009} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3b68d69d-fe1a-41c3-9209-b30c7661ea87","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679737.180472} authorization-1 | {"level":"info","message":"POST /relations/update 200 296ms","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":"d46680ce07351f950c386ebcfbcbf97c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":296}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"e470049f-d64d-4ba1-97ea-4bc0bb6f8542","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679737.1824942} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c4ed78f0-d5dc-42e7-bfd3-ddbd5ec3b52b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679737.183139} authorization-1 | {"level":"info","message":"POST /relations/update 200 238ms","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":"dd157770-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":238}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291","user":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"06/Jun/2024:13:15:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1295","request_time":"0.706","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d46680ce07351f950c386ebcfbcbf97c"} experiment-1 | {"level":"info","message":"POST /experiments? 201 700ms","method":"POST","requestID":"d46680ce07351f950c386ebcfbcbf97c","responseTime":700,"status":201,"url":"/experiments?"} 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/13b0a3fc-edd1-43d8-93f3-a6d3b7235304'"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczN30.d4wL6brD4Lje3wvc5PQTZk9A1EmQY6Hfwh04fta-7dA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"43732388c82e3dd75ceb2837992a7f94","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/13b0a3fc-edd1-43d8-93f3-a6d3b7235304'"} 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 271ms","method":"POST","requestID":"dd157770-2406-11ef-9563-e3996e819f8c","responseTime":271,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":287,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:37Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":287,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.963677,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:37Z"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679737,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczN30.d4wL6brD4Lje3wvc5PQTZk9A1EmQY6Hfwh04fta-7dA"} 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":"43732388c82e3dd75ceb2837992a7f94"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bfad5b0-509c-48d3-9b69-d687d6bd9f3d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5bfad5b0-509c-48d3-9b69-d687d6bd9f3d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:35.567583490Z"}]},"request_id":"89a04b99-ebe3-4928-b1c1-eebd37a3cf94","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679737.2218335} 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":"43732388c82e3dd75ceb2837992a7f94"},"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/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d? 200 25ms","method":"GET","requestID":"43732388c82e3dd75ceb2837992a7f94","responseTime":25,"status":200,"url":"/devices/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d?"} gateway-1 | {"time_local":"06/Jun/2024:13:15:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.032","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"43732388c82e3dd75ceb2837992a7f94"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczN30.d4wL6brD4Lje3wvc5PQTZk9A1EmQY6Hfwh04fta-7dA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"7a77c4ffea1e117af888aa0ebeda5577","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":288,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:37Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":288,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.258168,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:37Z"} device-1 | {"data":{"peerconnection":"13b0a3fc-edd1-43d8-93f3-a6d3b7235304","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679737,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczN30.d4wL6brD4Lje3wvc5PQTZk9A1EmQY6Hfwh04fta-7dA"} 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":"7a77c4ffea1e117af888aa0ebeda5577"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291"},"level":"info","message":"Successfully created peerconnections for experiment"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b4946c2-7d21-4d0e-8e96-32584eebddfe","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b4946c2-7d21-4d0e-8e96-32584eebddfe","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:35.906160504Z"}]},"request_id":"fcc46220-aae7-494f-96e2-5adfc3ff3820","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679737.2541268} 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":"7a77c4ffea1e117af888aa0ebeda5577"},"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":"06/Jun/2024:13:15:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.026","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7a77c4ffea1e117af888aa0ebeda5577"} device-1 | {"level":"info","message":"GET /devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe? 200 16ms","method":"GET","requestID":"7a77c4ffea1e117af888aa0ebeda5577","responseTime":16,"status":200,"url":"/devices/1b4946c2-7d21-4d0e-8e96-32584eebddfe?"} device-1 | {"data":{"peerconnection":"13b0a3fc-edd1-43d8-93f3-a6d3b7235304","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/13b0a3fc-edd1-43d8-93f3-a6d3b7235304' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"13b0a3fc-edd1-43d8-93f3-a6d3b7235304","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"ea8711767da99ae64f6278cd89951fc0","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/1b4946c2-7d21-4d0e-8e96-32584eebddfe"},{"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/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/13b0a3fc-edd1-43d8-93f3-a6d3b7235304"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"ea8711767da99ae64f6278cd89951fc0","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:37 +0000","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":"ea8711767da99ae64f6278cd89951fc0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczN30.d4wL6brD4Lje3wvc5PQTZk9A1EmQY6Hfwh04fta-7dA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"82416c2ab7be85110387372f45652cfe","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":289,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:37Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":289,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.351361,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679737,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczN30.d4wL6brD4Lje3wvc5PQTZk9A1EmQY6Hfwh04fta-7dA"} 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":"82416c2ab7be85110387372f45652cfe"},"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/3927cadc-ca2e-4eaa-a44f-d55121c67291"} gateway-1 | {"time_local":"06/Jun/2024:13:15:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291 HTTP/1.1","status": "200","body_bytes_sent":"1366","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"82416c2ab7be85110387372f45652cfe"} experiment-1 | {"level":"info","message":"GET /experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291 200 17ms","method":"GET","requestID":"82416c2ab7be85110387372f45652cfe","responseTime":17,"status":200,"url":"/experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczN30.d4wL6brD4Lje3wvc5PQTZk9A1EmQY6Hfwh04fta-7dA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"ce95076a4a7746bae291da150a07dfa9","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":290,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:37Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":290,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.4417,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679737,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczN30.d4wL6brD4Lje3wvc5PQTZk9A1EmQY6Hfwh04fta-7dA"} 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":"ce95076a4a7746bae291da150a07dfa9"},"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/3927cadc-ca2e-4eaa-a44f-d55121c67291"} gateway-1 | {"time_local":"06/Jun/2024:13:15:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291 HTTP/1.1","status": "200","body_bytes_sent":"1366","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ce95076a4a7746bae291da150a07dfa9"} experiment-1 | {"level":"info","message":"GET /experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291 200 16ms","method":"GET","requestID":"ce95076a4a7746bae291da150a07dfa9","responseTime":16,"status":200,"url":"/experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291"} device-1 | {"data":{"peerconnection":"13b0a3fc-edd1-43d8-93f3-a6d3b7235304","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"13b0a3fc-edd1-43d8-93f3-a6d3b7235304","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/13b0a3fc-edd1-43d8-93f3-a6d3b7235304' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"13b0a3fc-edd1-43d8-93f3-a6d3b7235304","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ddaef909b42b6bb7b7d535e41c0868d2","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/1b4946c2-7d21-4d0e-8e96-32584eebddfe"},{"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/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/13b0a3fc-edd1-43d8-93f3-a6d3b7235304"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":291,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:37Z"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","contextual_tuples":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F13b0a3fc-edd1-43d8-93f3-a6d3b7235304","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bc70ea1c-4791-4310-aeeb-9f8b72d8a9f2","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679737.6353354} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":291,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":4.1942,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/13b0a3fc-edd1-43d8-93f3-a6d3b7235304","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/13b0a3fc-edd1-43d8-93f3-a6d3b7235304","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":"dd7f0eb0-2406-11ef-9563-e3996e819f8c"},"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/13b0a3fc-edd1-43d8-93f3-a6d3b7235304 200 14ms","method":"GET","requestID":"dd7f0eb0-2406-11ef-9563-e3996e819f8c","responseTime":14,"status":200,"url":"/peerconnections/13b0a3fc-edd1-43d8-93f3-a6d3b7235304"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczN30.d4wL6brD4Lje3wvc5PQTZk9A1EmQY6Hfwh04fta-7dA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2c89848ea11ae4dd4af39085bac3e8f7","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":292,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:37Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":292,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.192121,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679737,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczN30.d4wL6brD4Lje3wvc5PQTZk9A1EmQY6Hfwh04fta-7dA"} 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":"2c89848ea11ae4dd4af39085bac3e8f7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 53ms","method":"POST","requestID":"ddaef909b42b6bb7b7d535e41c0868d2","responseTime":53,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.058","http_referrer":"","http_user_agent":"node-fetch","requestID":"ddaef909b42b6bb7b7d535e41c0868d2"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291"} gateway-1 | {"time_local":"06/Jun/2024:13:15:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291 HTTP/1.1","status": "200","body_bytes_sent":"1368","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2c89848ea11ae4dd4af39085bac3e8f7"} experiment-1 | {"level":"info","message":"GET /experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291 200 18ms","method":"GET","requestID":"2c89848ea11ae4dd4af39085bac3e8f7","responseTime":18,"status":200,"url":"/experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczN30.d4wL6brD4Lje3wvc5PQTZk9A1EmQY6Hfwh04fta-7dA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b8570c5636fec0b84629aada643edd2f","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":293,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:37Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":293,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.957839,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:37Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679737,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczN30.d4wL6brD4Lje3wvc5PQTZk9A1EmQY6Hfwh04fta-7dA"} 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":"b8570c5636fec0b84629aada643edd2f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":294,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:37Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":294,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.823885,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:37Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/13b0a3fc-edd1-43d8-93f3-a6d3b7235304","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:http://localhost/peerconnections/13b0a3fc-edd1-43d8-93f3-a6d3b7235304","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679737,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczN30.d4wL6brD4Lje3wvc5PQTZk9A1EmQY6Hfwh04fta-7dA"} 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":"dd89bd10-2406-11ef-9563-e3996e819f8c"},"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/13b0a3fc-edd1-43d8-93f3-a6d3b7235304' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/13b0a3fc-edd1-43d8-93f3-a6d3b7235304' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"13b0a3fc-edd1-43d8-93f3-a6d3b7235304","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"0a12854fbfc997401ff8bac84c059ad6","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F13b0a3fc-edd1-43d8-93f3-a6d3b7235304': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F13b0a3fc-edd1-43d8-93f3-a6d3b7235304","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"624dd9f9-4de8-40d1-988e-47afd9828740","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679737.7169} 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/1b4946c2-7d21-4d0e-8e96-32584eebddfe"},{"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/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/13b0a3fc-edd1-43d8-93f3-a6d3b7235304"}}},"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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"a0093cc1850139710938359ace28b047","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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4d40c3f7-23f7-42bc-8d2c-4c867f9429d9","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679737.717562} 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/1b4946c2-7d21-4d0e-8e96-32584eebddfe"},{"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/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/13b0a3fc-edd1-43d8-93f3-a6d3b7235304"}}},"level":"info","message":"received a callback"} 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":"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":"dd89bd10-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"data":{"peerconnection":"13b0a3fc-edd1-43d8-93f3-a6d3b7235304","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/13b0a3fc-edd1-43d8-93f3-a6d3b7235304 204 40ms","method":"DELETE","requestID":"dd89bd10-2406-11ef-9563-e3996e819f8c","responseTime":40,"status":204,"url":"/peerconnections/13b0a3fc-edd1-43d8-93f3-a6d3b7235304"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3927cadc-ca2e-4eaa-a44f-d55121c67291': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3927cadc-ca2e-4eaa-a44f-d55121c67291","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"6bec5ec2-4a11-4671-b057-233aff80ecf6","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679737.7750013} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"78734ce8-c4cf-400d-ab86-33924f16c103","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679737.7753236} 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":"b8570c5636fec0b84629aada643edd2f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291"} gateway-1 | {"time_local":"06/Jun/2024:13:15:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291 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":"b8570c5636fec0b84629aada643edd2f"} gateway-1 | {"time_local":"06/Jun/2024:13:15:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1762","request_time":"1.404","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"f118fdfe0f1c18996089e2aa69a5bedf"} gateway-1 | {"time_local":"06/Jun/2024:13:15:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1760","request_time":"1.412","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"7f03d047f090d0fc2513bfb142db8ac5"} experiment-1 | {"level":"info","message":"DELETE /experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291 204 170ms","method":"DELETE","requestID":"b8570c5636fec0b84629aada643edd2f","responseTime":170,"status":204,"url":"/experiments/3927cadc-ca2e-4eaa-a44f-d55121c67291"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 139ms","method":"POST","requestID":"0a12854fbfc997401ff8bac84c059ad6","responseTime":139,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.143","http_referrer":"","http_user_agent":"node-fetch","requestID":"0a12854fbfc997401ff8bac84c059ad6"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 140ms","method":"POST","requestID":"a0093cc1850139710938359ace28b047","responseTime":140,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:37 +0000","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":"a0093cc1850139710938359ace28b047"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczN30.d4wL6brD4Lje3wvc5PQTZk9A1EmQY6Hfwh04fta-7dA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"87728b62216ee6ce688f2032e48f70f8","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/1b4946c2-7d21-4d0e-8e96-32584eebddfe' closed"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":295,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:37Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":295,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.970791,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:37Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679737,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczN30.d4wL6brD4Lje3wvc5PQTZk9A1EmQY6Hfwh04fta-7dA"} 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":"87728b62216ee6ce688f2032e48f70f8"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/5bfad5b0-509c-48d3-9b69-d687d6bd9f3d' 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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe0fe26ba-82ee-4785-bbd2-2109340fb23c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e2c00673-a74c-45da-a5a5-c11348d501ca","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679737.8897526} 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":"87728b62216ee6ce688f2032e48f70f8"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e6c6785e-c05d-4f70-926a-4feb2469db14","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679737.8971813} 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":"87728b62216ee6ce688f2032e48f70f8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe0fe26ba-82ee-4785-bbd2-2109340fb23c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"fc312f75-32f4-4f48-99fe-34af49334d14","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679737.9089897} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1a26de7c-55ca-4dfe-904c-f4d8f7ea05b8","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679737.9091225} 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":"87728b62216ee6ce688f2032e48f70f8"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe0fe26ba-82ee-4785-bbd2-2109340fb23c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe0fe26ba-82ee-4785-bbd2-2109340fb23c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:37.908957653Z"}]},"request_id":"83ae8932-adbd-4263-806f-8d34c8e3d55b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679737.9154277} 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":"87728b62216ee6ce688f2032e48f70f8"},"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":"06/Jun/2024:13:15:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.063","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"87728b62216ee6ce688f2032e48f70f8"} device-1 | {"level":"info","message":"POST /devices? 201 54ms","method":"POST","requestID":"87728b62216ee6ce688f2032e48f70f8","responseTime":54,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczN30.d4wL6brD4Lje3wvc5PQTZk9A1EmQY6Hfwh04fta-7dA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ce8686a201fc52a3a09867e61dff8c59","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":296,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:37Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":296,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.938908,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:37Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679737,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczN30.d4wL6brD4Lje3wvc5PQTZk9A1EmQY6Hfwh04fta-7dA"} 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":"ce8686a201fc52a3a09867e61dff8c59"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337e7346-09b1-47da-b95b-52dd6a86b2e0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e709cf29-76f2-49ac-8d68-762dcea6fbbc","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679737.9642} 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":"ce8686a201fc52a3a09867e61dff8c59"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d45327e0-d891-447f-b915-13796bda4323","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679737.9756217} 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":"ce8686a201fc52a3a09867e61dff8c59"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337e7346-09b1-47da-b95b-52dd6a86b2e0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"e3c65d5a-1338-4727-8943-61e6e2d5ad7d","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679737.9921997} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5ecbcadf-fab5-4750-bcdd-e56d853cd82b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679737.9923282} 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":"ce8686a201fc52a3a09867e61dff8c59"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337e7346-09b1-47da-b95b-52dd6a86b2e0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337e7346-09b1-47da-b95b-52dd6a86b2e0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:37.992180341Z"}]},"request_id":"b9c521bf-7806-4f8e-9ffb-1ea3e53c4f6f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679737.9961011} 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":"ce8686a201fc52a3a09867e61dff8c59"},"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":"06/Jun/2024:13:15:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.077","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ce8686a201fc52a3a09867e61dff8c59"} device-1 | {"level":"info","message":"POST /devices? 201 72ms","method":"POST","requestID":"ce8686a201fc52a3a09867e61dff8c59","responseTime":72,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOH0.NOeEh38azATxSTJyS19EJA2LuoqZvD8kCo08ND9R5rg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"99edd4a47ec0b9a08ed017d9190bac4b","responseTime":4,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOH0.NOeEh38azATxSTJyS19EJA2LuoqZvD8kCo08ND9R5rg","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"5fb8abcb3fa215d5f7e182e7ee1b5f78","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":297,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":297,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.846214,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":298,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/e0fe26ba-82ee-4785-bbd2-2109340fb23c","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/e0fe26ba-82ee-4785-bbd2-2109340fb23c","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679738,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOH0.NOeEh38azATxSTJyS19EJA2LuoqZvD8kCo08ND9R5rg"} 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":"99edd4a47ec0b9a08ed017d9190bac4b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":298,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.761384,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/337e7346-09b1-47da-b95b-52dd6a86b2e0","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/337e7346-09b1-47da-b95b-52dd6a86b2e0","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679738,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOH0.NOeEh38azATxSTJyS19EJA2LuoqZvD8kCo08ND9R5rg"} 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":"5fb8abcb3fa215d5f7e182e7ee1b5f78"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337e7346-09b1-47da-b95b-52dd6a86b2e0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337e7346-09b1-47da-b95b-52dd6a86b2e0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:37.992180341Z"}]},"request_id":"c4d984e9-c9af-40a7-9efb-f33d94ab6cad","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679738.4671674} 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":"5fb8abcb3fa215d5f7e182e7ee1b5f78"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe0fe26ba-82ee-4785-bbd2-2109340fb23c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe0fe26ba-82ee-4785-bbd2-2109340fb23c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:37.908957653Z"}]},"request_id":"acdd1d34-bcc8-4fa6-a0b1-130924dd8451","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679738.467977} 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":"99edd4a47ec0b9a08ed017d9190bac4b"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9aa05c79-5146-4933-942e-3318d3e8c1d6","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679738.4737623} 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":"5fb8abcb3fa215d5f7e182e7ee1b5f78"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c35ed3e8-5fe5-4476-9b66-b1252a425af3","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679738.478733} 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":"99edd4a47ec0b9a08ed017d9190bac4b"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe0fe26ba-82ee-4785-bbd2-2109340fb23c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe0fe26ba-82ee-4785-bbd2-2109340fb23c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:37.908957653Z"}]},"request_id":"3bba4482-f71d-43c2-8474-ffa3e1e5ea9c","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679738.4823477} 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":"99edd4a47ec0b9a08ed017d9190bac4b"},"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/e0fe26ba-82ee-4785-bbd2-2109340fb23c 200 32ms","method":"PATCH","requestID":"99edd4a47ec0b9a08ed017d9190bac4b","responseTime":32,"status":200,"url":"/devices/e0fe26ba-82ee-4785-bbd2-2109340fb23c"} gateway-1 | {"time_local":"06/Jun/2024:13:15:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/e0fe26ba-82ee-4785-bbd2-2109340fb23c HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.037","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"99edd4a47ec0b9a08ed017d9190bac4b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOH0.NOeEh38azATxSTJyS19EJA2LuoqZvD8kCo08ND9R5rg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"482d8eaef804d08660039f743b28ee85","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket 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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337e7346-09b1-47da-b95b-52dd6a86b2e0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337e7346-09b1-47da-b95b-52dd6a86b2e0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:37.992180341Z"}]},"request_id":"b74c5c60-933e-448b-b697-7831731da050","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679738.4927204} 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":"5fb8abcb3fa215d5f7e182e7ee1b5f78"},"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:36466","level":"info","msg":"Received request.","req_id":299,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":299,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.742798,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:38Z"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/e0fe26ba-82ee-4785-bbd2-2109340fb23c","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/e0fe26ba-82ee-4785-bbd2-2109340fb23c","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679738,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOH0.NOeEh38azATxSTJyS19EJA2LuoqZvD8kCo08ND9R5rg"} gateway-1 | {"time_local":"06/Jun/2024:13:15:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/337e7346-09b1-47da-b95b-52dd6a86b2e0 HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.048","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"5fb8abcb3fa215d5f7e182e7ee1b5f78"} device-1 | {"level":"info","message":"PATCH /devices/337e7346-09b1-47da-b95b-52dd6a86b2e0 200 40ms","method":"PATCH","requestID":"5fb8abcb3fa215d5f7e182e7ee1b5f78","responseTime":40,"status":200,"url":"/devices/337e7346-09b1-47da-b95b-52dd6a86b2e0"} 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":"482d8eaef804d08660039f743b28ee85"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOH0.NOeEh38azATxSTJyS19EJA2LuoqZvD8kCo08ND9R5rg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"9c61c14c9ad2b9c5321094def7555610","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":300,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":300,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.714605,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/337e7346-09b1-47da-b95b-52dd6a86b2e0","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/337e7346-09b1-47da-b95b-52dd6a86b2e0","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679738,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOH0.NOeEh38azATxSTJyS19EJA2LuoqZvD8kCo08ND9R5rg"} 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":"9c61c14c9ad2b9c5321094def7555610"},"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":"06/Jun/2024:13:15:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/e0fe26ba-82ee-4785-bbd2-2109340fb23c/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":"482d8eaef804d08660039f743b28ee85"} device-1 | {"level":"info","message":"POST /devices/e0fe26ba-82ee-4785-bbd2-2109340fb23c/websocket 200 16ms","method":"POST","requestID":"482d8eaef804d08660039f743b28ee85","responseTime":16,"status":200,"url":"/devices/e0fe26ba-82ee-4785-bbd2-2109340fb23c/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"06/Jun/2024:13:15:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/337e7346-09b1-47da-b95b-52dd6a86b2e0/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":"9c61c14c9ad2b9c5321094def7555610"} device-1 | {"level":"info","message":"POST /devices/337e7346-09b1-47da-b95b-52dd6a86b2e0/websocket 200 17ms","method":"POST","requestID":"9c61c14c9ad2b9c5321094def7555610","responseTime":17,"status":200,"url":"/devices/337e7346-09b1-47da-b95b-52dd6a86b2e0/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/e0fe26ba-82ee-4785-bbd2-2109340fb23c' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/337e7346-09b1-47da-b95b-52dd6a86b2e0' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOH0.NOeEh38azATxSTJyS19EJA2LuoqZvD8kCo08ND9R5rg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"5fb7283a826b7b53c00ebcff9544e0c8","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":301,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":301,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.181589,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e0fe26ba-82ee-4785-bbd2-2109340fb23c","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/e0fe26ba-82ee-4785-bbd2-2109340fb23c","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679738,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOH0.NOeEh38azATxSTJyS19EJA2LuoqZvD8kCo08ND9R5rg"} 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":"5fb7283a826b7b53c00ebcff9544e0c8"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe0fe26ba-82ee-4785-bbd2-2109340fb23c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe0fe26ba-82ee-4785-bbd2-2109340fb23c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:37.908957653Z"}]},"request_id":"4ba836bd-fb97-4559-aced-ec002caf35df","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679738.5522473} 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":"5fb7283a826b7b53c00ebcff9544e0c8"},"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/e0fe26ba-82ee-4785-bbd2-2109340fb23c? 200 12ms","method":"GET","requestID":"5fb7283a826b7b53c00ebcff9544e0c8","responseTime":12,"status":200,"url":"/devices/e0fe26ba-82ee-4785-bbd2-2109340fb23c?"} gateway-1 | {"time_local":"06/Jun/2024:13:15:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e0fe26ba-82ee-4785-bbd2-2109340fb23c? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5fb7283a826b7b53c00ebcff9544e0c8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOH0.NOeEh38azATxSTJyS19EJA2LuoqZvD8kCo08ND9R5rg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"746ce4286b240659ecb6175685bb502a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":302,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":302,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.739085,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/337e7346-09b1-47da-b95b-52dd6a86b2e0","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/337e7346-09b1-47da-b95b-52dd6a86b2e0","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679738,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOH0.NOeEh38azATxSTJyS19EJA2LuoqZvD8kCo08ND9R5rg"} 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":"746ce4286b240659ecb6175685bb502a"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337e7346-09b1-47da-b95b-52dd6a86b2e0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337e7346-09b1-47da-b95b-52dd6a86b2e0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:37.992180341Z"}]},"request_id":"af1c346d-e1ec-466c-9bf0-7bba7ee38acf","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679738.5703146} 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":"746ce4286b240659ecb6175685bb502a"},"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":"06/Jun/2024:13:15:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/337e7346-09b1-47da-b95b-52dd6a86b2e0? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"746ce4286b240659ecb6175685bb502a"} device-1 | {"level":"info","message":"GET /devices/337e7346-09b1-47da-b95b-52dd6a86b2e0? 200 13ms","method":"GET","requestID":"746ce4286b240659ecb6175685bb502a","responseTime":13,"status":200,"url":"/devices/337e7346-09b1-47da-b95b-52dd6a86b2e0?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOH0.NOeEh38azATxSTJyS19EJA2LuoqZvD8kCo08ND9R5rg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"89200bffe804492236043db88fc3df1f","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:36466","level":"info","msg":"Received request.","req_id":303,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":303,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.946269,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679738,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOH0.NOeEh38azATxSTJyS19EJA2LuoqZvD8kCo08ND9R5rg"} 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":"89200bffe804492236043db88fc3df1f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/705a8046-e9d5-45bb-93d7-f7337988e886"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/705a8046-e9d5-45bb-93d7-f7337988e886"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/705a8046-e9d5-45bb-93d7-f7337988e886"},"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:36466","level":"info","msg":"Received request.","req_id":304,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":304,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.833939,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e0fe26ba-82ee-4785-bbd2-2109340fb23c","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/e0fe26ba-82ee-4785-bbd2-2109340fb23c","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679738,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOH0.NOeEh38azATxSTJyS19EJA2LuoqZvD8kCo08ND9R5rg"} 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":"de153430-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":305,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":305,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.542968,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/337e7346-09b1-47da-b95b-52dd6a86b2e0","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/337e7346-09b1-47da-b95b-52dd6a86b2e0","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679738,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOH0.NOeEh38azATxSTJyS19EJA2LuoqZvD8kCo08ND9R5rg"} 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":"de158250-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe0fe26ba-82ee-4785-bbd2-2109340fb23c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe0fe26ba-82ee-4785-bbd2-2109340fb23c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:37.908957653Z"}]},"request_id":"86dd6eb3-e758-4427-a7c2-dc36ca7aec4e","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679738.6222925} 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":"de153430-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337e7346-09b1-47da-b95b-52dd6a86b2e0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337e7346-09b1-47da-b95b-52dd6a86b2e0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:37.992180341Z"}]},"request_id":"f48225fb-a68a-4976-9e82-096077c2ecdb","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679738.6230142} 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":"de158250-2406-11ef-9563-e3996e819f8c"},"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/337e7346-09b1-47da-b95b-52dd6a86b2e0? 200 15ms","method":"GET","requestID":"de158250-2406-11ef-9563-e3996e819f8c","responseTime":15,"status":200,"url":"/devices/337e7346-09b1-47da-b95b-52dd6a86b2e0?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/e0fe26ba-82ee-4785-bbd2-2109340fb23c? 200 18ms","method":"GET","requestID":"de153430-2406-11ef-9563-e3996e819f8c","responseTime":18,"status":200,"url":"/devices/e0fe26ba-82ee-4785-bbd2-2109340fb23c?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/705a8046-e9d5-45bb-93d7-f7337988e886"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/705a8046-e9d5-45bb-93d7-f7337988e886"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/705a8046-e9d5-45bb-93d7-f7337988e886"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/705a8046-e9d5-45bb-93d7-f7337988e886"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/705a8046-e9d5-45bb-93d7-f7337988e886"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/705a8046-e9d5-45bb-93d7-f7337988e886"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/705a8046-e9d5-45bb-93d7-f7337988e886"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/705a8046-e9d5-45bb-93d7-f7337988e886"},"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/705a8046-e9d5-45bb-93d7-f7337988e886"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":306,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":306,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.061577,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":307,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e0fe26ba-82ee-4785-bbd2-2109340fb23c","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/e0fe26ba-82ee-4785-bbd2-2109340fb23c","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679738,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOH0.NOeEh38azATxSTJyS19EJA2LuoqZvD8kCo08ND9R5rg"} 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":"de2009a0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":307,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.076945,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/337e7346-09b1-47da-b95b-52dd6a86b2e0","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/337e7346-09b1-47da-b95b-52dd6a86b2e0","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679738,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOH0.NOeEh38azATxSTJyS19EJA2LuoqZvD8kCo08ND9R5rg"} 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":"de2057c0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe0fe26ba-82ee-4785-bbd2-2109340fb23c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe0fe26ba-82ee-4785-bbd2-2109340fb23c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:37.908957653Z"}]},"request_id":"3a068bbe-387d-4283-8a08-b7084ff66938","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679738.6957946} 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":"de2009a0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337e7346-09b1-47da-b95b-52dd6a86b2e0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337e7346-09b1-47da-b95b-52dd6a86b2e0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:37.992180341Z"}]},"request_id":"1af44724-e9bd-42da-8973-a0160529cac3","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679738.6971197} 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":"de2057c0-2406-11ef-9563-e3996e819f8c"},"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/e0fe26ba-82ee-4785-bbd2-2109340fb23c? 200 20ms","method":"GET","requestID":"de2009a0-2406-11ef-9563-e3996e819f8c","responseTime":20,"status":200,"url":"/devices/e0fe26ba-82ee-4785-bbd2-2109340fb23c?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/337e7346-09b1-47da-b95b-52dd6a86b2e0? 200 19ms","method":"GET","requestID":"de2057c0-2406-11ef-9563-e3996e819f8c","responseTime":19,"status":200,"url":"/devices/337e7346-09b1-47da-b95b-52dd6a86b2e0?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":308,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":308,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.747032,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/e0fe26ba-82ee-4785-bbd2-2109340fb23c","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e0fe26ba-82ee-4785-bbd2-2109340fb23c","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"de23b320-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F705a8046-e9d5-45bb-93d7-f7337988e886#owner@http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F705a8046-e9d5-45bb-93d7-f7337988e886","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"9d5a58e3-70b4-4aae-a466-bdeb4fd5314b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679738.7115648} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"df257f82-883f-4777-a13d-bbf468d1ed81","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679738.7120647} 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":"89200bffe804492236043db88fc3df1f"},"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/e0fe26ba-82ee-4785-bbd2-2109340fb23c/signaling 200 9ms","method":"POST","requestID":"de23b320-2406-11ef-9563-e3996e819f8c","responseTime":9,"status":200,"url":"/devices/e0fe26ba-82ee-4785-bbd2-2109340fb23c/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":309,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:38Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/705a8046-e9d5-45bb-93d7-f7337988e886","user":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":309,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.638905,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:38Z"} gateway-1 | {"time_local":"06/Jun/2024:13:15:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1295","request_time":"0.151","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"89200bffe804492236043db88fc3df1f"} experiment-1 | {"level":"info","message":"POST /experiments? 201 147ms","method":"POST","requestID":"89200bffe804492236043db88fc3df1f","responseTime":147,"status":201,"url":"/experiments?"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/337e7346-09b1-47da-b95b-52dd6a86b2e0","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/337e7346-09b1-47da-b95b-52dd6a86b2e0","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"de25fd10-2406-11ef-9563-e3996e819f8c"},"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/337e7346-09b1-47da-b95b-52dd6a86b2e0/signaling 200 10ms","method":"POST","requestID":"de25fd10-2406-11ef-9563-e3996e819f8c","responseTime":10,"status":200,"url":"/devices/337e7346-09b1-47da-b95b-52dd6a86b2e0/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOH0.NOeEh38azATxSTJyS19EJA2LuoqZvD8kCo08ND9R5rg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0ddba5c4442aeb21cf9917bdfcb7c54f","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/705a8046-e9d5-45bb-93d7-f7337988e886"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/705a8046-e9d5-45bb-93d7-f7337988e886"},"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":"7b96eb04-f7fc-4abf-bad3-ff0d8255a20c"},{"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":"df1ae827-5310-4f8e-9b6a-ffeeb55b0ff3"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"b13d3b08-6492-408a-aa49-a40173eb6ed9"}]},"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/337e7346-09b1-47da-b95b-52dd6a86b2e0"},{"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/e0fe26ba-82ee-4785-bbd2-2109340fb23c"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":310,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":310,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.325831,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":311,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e0fe26ba-82ee-4785-bbd2-2109340fb23c","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/e0fe26ba-82ee-4785-bbd2-2109340fb23c","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679738,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOH0.NOeEh38azATxSTJyS19EJA2LuoqZvD8kCo08ND9R5rg"} 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":"0ddba5c4442aeb21cf9917bdfcb7c54f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":311,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.836967,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679738,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOH0.NOeEh38azATxSTJyS19EJA2LuoqZvD8kCo08ND9R5rg"} 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":"de281ff0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe0fe26ba-82ee-4785-bbd2-2109340fb23c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe0fe26ba-82ee-4785-bbd2-2109340fb23c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:37.908957653Z"}]},"request_id":"ab3c485f-a448-4adb-b967-3a880e11d437","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679738.743723} 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":"0ddba5c4442aeb21cf9917bdfcb7c54f"},"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":"06/Jun/2024:13:15:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e0fe26ba-82ee-4785-bbd2-2109340fb23c? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0ddba5c4442aeb21cf9917bdfcb7c54f"} device-1 | {"level":"info","message":"GET /devices/e0fe26ba-82ee-4785-bbd2-2109340fb23c? 200 18ms","method":"GET","requestID":"0ddba5c4442aeb21cf9917bdfcb7c54f","responseTime":18,"status":200,"url":"/devices/e0fe26ba-82ee-4785-bbd2-2109340fb23c?"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"98ffdb3d-e224-4370-bd85-993acba43af1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679738.7545807} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9eb508ba-0f89-475b-b3dc-8e328bac9deb","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679738.754722} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOH0.NOeEh38azATxSTJyS19EJA2LuoqZvD8kCo08ND9R5rg","level":"info","message":"auth send jwt"} 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":"de281ff0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"433ad4bcfe67f35ca02cd69560d1feb3","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":312,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":312,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.837257,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/337e7346-09b1-47da-b95b-52dd6a86b2e0","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/337e7346-09b1-47da-b95b-52dd6a86b2e0","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679738,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOH0.NOeEh38azATxSTJyS19EJA2LuoqZvD8kCo08ND9R5rg"} 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":"433ad4bcfe67f35ca02cd69560d1feb3"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337e7346-09b1-47da-b95b-52dd6a86b2e0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F337e7346-09b1-47da-b95b-52dd6a86b2e0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:37.992180341Z"}]},"request_id":"70f2d1db-96aa-43fc-9a64-b251df5ab216","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679738.768038} 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":"433ad4bcfe67f35ca02cd69560d1feb3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"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/8da21eb0-87f1-4719-a78c-841bb9e2e533'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/8da21eb0-87f1-4719-a78c-841bb9e2e533'"} 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 39ms","method":"POST","requestID":"de281ff0-2406-11ef-9563-e3996e819f8c","responseTime":39,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"06/Jun/2024:13:15:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/337e7346-09b1-47da-b95b-52dd6a86b2e0? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"433ad4bcfe67f35ca02cd69560d1feb3"} device-1 | {"level":"info","message":"GET /devices/337e7346-09b1-47da-b95b-52dd6a86b2e0? 200 16ms","method":"GET","requestID":"433ad4bcfe67f35ca02cd69560d1feb3","responseTime":16,"status":200,"url":"/devices/337e7346-09b1-47da-b95b-52dd6a86b2e0?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"8da21eb0-87f1-4719-a78c-841bb9e2e533","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/705a8046-e9d5-45bb-93d7-f7337988e886"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"data":{"peerconnection":"8da21eb0-87f1-4719-a78c-841bb9e2e533","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/8da21eb0-87f1-4719-a78c-841bb9e2e533' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"8da21eb0-87f1-4719-a78c-841bb9e2e533","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"398b673e92bac1ce10a6170aac9c3cd1","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/337e7346-09b1-47da-b95b-52dd6a86b2e0"},{"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/e0fe26ba-82ee-4785-bbd2-2109340fb23c"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/8da21eb0-87f1-4719-a78c-841bb9e2e533"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"398b673e92bac1ce10a6170aac9c3cd1","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"398b673e92bac1ce10a6170aac9c3cd1"} device-1 | {"data":{"peerconnection":"8da21eb0-87f1-4719-a78c-841bb9e2e533","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"8da21eb0-87f1-4719-a78c-841bb9e2e533","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/8da21eb0-87f1-4719-a78c-841bb9e2e533' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"8da21eb0-87f1-4719-a78c-841bb9e2e533","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"297845f181a15fda89ffca75c637526f","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/337e7346-09b1-47da-b95b-52dd6a86b2e0"},{"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/e0fe26ba-82ee-4785-bbd2-2109340fb23c"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/8da21eb0-87f1-4719-a78c-841bb9e2e533"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":313,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","contextual_tuples":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F8da21eb0-87f1-4719-a78c-841bb9e2e533","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cbda0149-a2e3-47b3-8f65-e0e4f0e4afc9","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679738.8689928} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":313,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.923049,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/8da21eb0-87f1-4719-a78c-841bb9e2e533","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/8da21eb0-87f1-4719-a78c-841bb9e2e533","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":"de3bcf00-2406-11ef-9563-e3996e819f8c"},"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/8da21eb0-87f1-4719-a78c-841bb9e2e533 200 10ms","method":"GET","requestID":"de3bcf00-2406-11ef-9563-e3996e819f8c","responseTime":10,"status":200,"url":"/peerconnections/8da21eb0-87f1-4719-a78c-841bb9e2e533"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 32ms","method":"POST","requestID":"297845f181a15fda89ffca75c637526f","responseTime":32,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.035","http_referrer":"","http_user_agent":"node-fetch","requestID":"297845f181a15fda89ffca75c637526f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOH0.NOeEh38azATxSTJyS19EJA2LuoqZvD8kCo08ND9R5rg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"43f56ff5c5ef366c16ada193dc45bb79","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/705a8046-e9d5-45bb-93d7-f7337988e886"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":314,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":314,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.272434,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/705a8046-e9d5-45bb-93d7-f7337988e886","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/705a8046-e9d5-45bb-93d7-f7337988e886","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679738,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOH0.NOeEh38azATxSTJyS19EJA2LuoqZvD8kCo08ND9R5rg"} 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":"43f56ff5c5ef366c16ada193dc45bb79"},"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/705a8046-e9d5-45bb-93d7-f7337988e886"} gateway-1 | {"time_local":"06/Jun/2024:13:15:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/705a8046-e9d5-45bb-93d7-f7337988e886 HTTP/1.1","status": "200","body_bytes_sent":"1368","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"43f56ff5c5ef366c16ada193dc45bb79"} experiment-1 | {"level":"info","message":"GET /experiments/705a8046-e9d5-45bb-93d7-f7337988e886 200 16ms","method":"GET","requestID":"43f56ff5c5ef366c16ada193dc45bb79","responseTime":16,"status":200,"url":"/experiments/705a8046-e9d5-45bb-93d7-f7337988e886"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOH0.NOeEh38azATxSTJyS19EJA2LuoqZvD8kCo08ND9R5rg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"57b51cb6a4a0a78a0d22b91355e57f18","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/705a8046-e9d5-45bb-93d7-f7337988e886"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":315,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":315,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.307287,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:38Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/705a8046-e9d5-45bb-93d7-f7337988e886","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/705a8046-e9d5-45bb-93d7-f7337988e886","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679738,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOH0.NOeEh38azATxSTJyS19EJA2LuoqZvD8kCo08ND9R5rg"} 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":"57b51cb6a4a0a78a0d22b91355e57f18"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/705a8046-e9d5-45bb-93d7-f7337988e886"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":316,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:39Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":316,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.246267,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:39Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/8da21eb0-87f1-4719-a78c-841bb9e2e533","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:http://localhost/peerconnections/8da21eb0-87f1-4719-a78c-841bb9e2e533","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679738,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOH0.NOeEh38azATxSTJyS19EJA2LuoqZvD8kCo08ND9R5rg"} 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":"de501a50-2406-11ef-9563-e3996e819f8c"},"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/8da21eb0-87f1-4719-a78c-841bb9e2e533' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/8da21eb0-87f1-4719-a78c-841bb9e2e533' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"8da21eb0-87f1-4719-a78c-841bb9e2e533","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"e040dbc88eaf1f8d985ccc5f41475a3d","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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/337e7346-09b1-47da-b95b-52dd6a86b2e0"},{"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/e0fe26ba-82ee-4785-bbd2-2109340fb23c"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/8da21eb0-87f1-4719-a78c-841bb9e2e533"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a21d73aac671c03eaad36c704365ae4d","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F8da21eb0-87f1-4719-a78c-841bb9e2e533': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F8da21eb0-87f1-4719-a78c-841bb9e2e533","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"00313751-684f-423f-ba13-42ce3fbbc65d","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679739.0304034} 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/337e7346-09b1-47da-b95b-52dd6a86b2e0"},{"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/e0fe26ba-82ee-4785-bbd2-2109340fb23c"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/8da21eb0-87f1-4719-a78c-841bb9e2e533"}}},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"06728a1e-0d0a-4416-be06-0a7b11758247","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679739.030767} 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":"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":"de501a50-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":17}} device-1 | {"data":{"peerconnection":"8da21eb0-87f1-4719-a78c-841bb9e2e533","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/8da21eb0-87f1-4719-a78c-841bb9e2e533 204 53ms","method":"DELETE","requestID":"de501a50-2406-11ef-9563-e3996e819f8c","responseTime":53,"status":204,"url":"/peerconnections/8da21eb0-87f1-4719-a78c-841bb9e2e533"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/705a8046-e9d5-45bb-93d7-f7337988e886"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F705a8046-e9d5-45bb-93d7-f7337988e886': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F705a8046-e9d5-45bb-93d7-f7337988e886","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"ff3e1f2e-909f-4d94-b020-339df4901510","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679739.0874422} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1add2436-fde6-46a9-b7e0-5921e182681f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679739.0876203} 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":"57b51cb6a4a0a78a0d22b91355e57f18"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":16}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/705a8046-e9d5-45bb-93d7-f7337988e886"} gateway-1 | {"time_local":"06/Jun/2024:13:15:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/705a8046-e9d5-45bb-93d7-f7337988e886 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":"57b51cb6a4a0a78a0d22b91355e57f18"} experiment-1 | {"level":"info","message":"DELETE /experiments/705a8046-e9d5-45bb-93d7-f7337988e886 204 172ms","method":"DELETE","requestID":"57b51cb6a4a0a78a0d22b91355e57f18","responseTime":172,"status":204,"url":"/experiments/705a8046-e9d5-45bb-93d7-f7337988e886"} gateway-1 | {"time_local":"06/Jun/2024:13:15:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1760","request_time":"0.633","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"4095ed01d130b2b141ad1bd61be207c0"} gateway-1 | {"time_local":"06/Jun/2024:13:15:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1762","request_time":"0.643","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"3a4c02514d955313929d1d9165e89420"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 127ms","method":"POST","requestID":"e040dbc88eaf1f8d985ccc5f41475a3d","responseTime":127,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15: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.131","http_referrer":"","http_user_agent":"node-fetch","requestID":"e040dbc88eaf1f8d985ccc5f41475a3d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 125ms","method":"POST","requestID":"a21d73aac671c03eaad36c704365ae4d","responseTime":125,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15: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.132","http_referrer":"","http_user_agent":"node-fetch","requestID":"a21d73aac671c03eaad36c704365ae4d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOX0.LgV4porrBqwI7rEXB4y_AzqlU8-kr45uwNqSp0QkZig","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"911c17d7b1c9c15db2b3814bc1ce3124","responseTime":3,"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/e0fe26ba-82ee-4785-bbd2-2109340fb23c' closed"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":317,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:39Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":317,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.860557,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679739,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOX0.LgV4porrBqwI7rEXB4y_AzqlU8-kr45uwNqSp0QkZig"} 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":"911c17d7b1c9c15db2b3814bc1ce3124"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/337e7346-09b1-47da-b95b-52dd6a86b2e0' 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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa08e12e6-c763-48c4-bf3f-b91cab39dd2f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"af0843a1-f04b-4b13-b8c3-fbd2377d9fed","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679739.1863286} 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":"911c17d7b1c9c15db2b3814bc1ce3124"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f4853a5e-80ff-4b44-816f-f565a8d8e6e4","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679739.192168} 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":"911c17d7b1c9c15db2b3814bc1ce3124"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa08e12e6-c763-48c4-bf3f-b91cab39dd2f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"283c962c-c522-4366-b438-c88b8bb747fa","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679739.2025533} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f958fb5e-f603-4c4e-8d28-a302295b8256","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679739.20266} 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":"911c17d7b1c9c15db2b3814bc1ce3124"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa08e12e6-c763-48c4-bf3f-b91cab39dd2f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa08e12e6-c763-48c4-bf3f-b91cab39dd2f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:39.202526489Z"}]},"request_id":"e41e406b-689b-4392-8757-08a22ac60f84","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679739.2074} 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":"911c17d7b1c9c15db2b3814bc1ce3124"},"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":"06/Jun/2024:13:15:39 +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":"911c17d7b1c9c15db2b3814bc1ce3124"} device-1 | {"level":"info","message":"POST /devices? 201 50ms","method":"POST","requestID":"911c17d7b1c9c15db2b3814bc1ce3124","responseTime":50,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOX0.LgV4porrBqwI7rEXB4y_AzqlU8-kr45uwNqSp0QkZig","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"89126af91f46104956fd3fec60762cd5","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":318,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:39Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":318,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.878341,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679739,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTczOX0.LgV4porrBqwI7rEXB4y_AzqlU8-kr45uwNqSp0QkZig"} 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":"89126af91f46104956fd3fec60762cd5"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feef16cb8-43d0-4fcd-90a2-29f99fb56274","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"8c6fb3a3-a2de-4348-b303-9780108d2735","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679739.2344754} 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":"89126af91f46104956fd3fec60762cd5"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b13450a7-f093-4de3-b671-88eb030e8e32","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679739.240134} 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":"89126af91f46104956fd3fec60762cd5"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feef16cb8-43d0-4fcd-90a2-29f99fb56274","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"6e7f74c0-8e8c-436f-9967-b7d602edf495","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679739.2551441} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0bf59826-0f87-493e-86e7-f47f9881078f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679739.2552989} 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":"89126af91f46104956fd3fec60762cd5"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feef16cb8-43d0-4fcd-90a2-29f99fb56274","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feef16cb8-43d0-4fcd-90a2-29f99fb56274","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:39.255116908Z"}]},"request_id":"20a7b130-b6a3-4a69-9950-52c153cec7ba","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679739.259609} 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":"89126af91f46104956fd3fec60762cd5"},"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":"06/Jun/2024:13:15:39 +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":"89126af91f46104956fd3fec60762cd5"} device-1 | {"level":"info","message":"POST /devices? 201 45ms","method":"POST","requestID":"89126af91f46104956fd3fec60762cd5","responseTime":45,"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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"bce0ba5f8a74663dfc88a23bd86612f1","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"06/Jun/2024:13:15:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274/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":"bce0ba5f8a74663dfc88a23bd86612f1"} device-1 | {"level":"info","message":"OPTIONS /devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274/websocket 200 1ms","method":"OPTIONS","requestID":"bce0ba5f8a74663dfc88a23bd86612f1","responseTime":1,"status":200,"url":"/devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0MX0.gxO2QyxtIhD7HVZw15-Cf-wuhUGYtJ3t724pczK79p0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"5a58a184b09ca0f4039b46e6be53720a","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":319,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":319,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.196059,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:41Z"} 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"f00dd3f0af0735f012c367d329df0fbe","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679741,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0MX0.gxO2QyxtIhD7HVZw15-Cf-wuhUGYtJ3t724pczK79p0"} 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":"5a58a184b09ca0f4039b46e6be53720a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} gateway-1 | {"time_local":"06/Jun/2024:13:15:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/a08e12e6-c763-48c4-bf3f-b91cab39dd2f/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":"f00dd3f0af0735f012c367d329df0fbe"} device-1 | {"level":"info","message":"OPTIONS /devices/a08e12e6-c763-48c4-bf3f-b91cab39dd2f/websocket 200 1ms","method":"OPTIONS","requestID":"f00dd3f0af0735f012c367d329df0fbe","responseTime":1,"status":200,"url":"/devices/a08e12e6-c763-48c4-bf3f-b91cab39dd2f/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0MX0.gxO2QyxtIhD7HVZw15-Cf-wuhUGYtJ3t724pczK79p0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ba2b3c631b22605f886381504a15ef1b","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":320,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":320,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.281191,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/a08e12e6-c763-48c4-bf3f-b91cab39dd2f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/a08e12e6-c763-48c4-bf3f-b91cab39dd2f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679741,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0MX0.gxO2QyxtIhD7HVZw15-Cf-wuhUGYtJ3t724pczK79p0"} 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":"ba2b3c631b22605f886381504a15ef1b"},"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":"06/Jun/2024:13:15:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274/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":"5a58a184b09ca0f4039b46e6be53720a"} device-1 | {"level":"info","message":"POST /devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274/websocket 200 27ms","method":"POST","requestID":"5a58a184b09ca0f4039b46e6be53720a","responseTime":27,"status":200,"url":"/devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"06/Jun/2024:13:15:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/a08e12e6-c763-48c4-bf3f-b91cab39dd2f/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":"ba2b3c631b22605f886381504a15ef1b"} device-1 | {"level":"info","message":"POST /devices/a08e12e6-c763-48c4-bf3f-b91cab39dd2f/websocket 200 22ms","method":"POST","requestID":"ba2b3c631b22605f886381504a15ef1b","responseTime":22,"status":200,"url":"/devices/a08e12e6-c763-48c4-bf3f-b91cab39dd2f/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/a08e12e6-c763-48c4-bf3f-b91cab39dd2f' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0MX0.gxO2QyxtIhD7HVZw15-Cf-wuhUGYtJ3t724pczK79p0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"733a3b2cd1f886c3f57c3bc02cebb028","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":321,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":321,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.294369,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a08e12e6-c763-48c4-bf3f-b91cab39dd2f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/a08e12e6-c763-48c4-bf3f-b91cab39dd2f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679741,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0MX0.gxO2QyxtIhD7HVZw15-Cf-wuhUGYtJ3t724pczK79p0"} 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":"733a3b2cd1f886c3f57c3bc02cebb028"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa08e12e6-c763-48c4-bf3f-b91cab39dd2f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa08e12e6-c763-48c4-bf3f-b91cab39dd2f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:39.202526489Z"}]},"request_id":"50158e31-d600-47e8-8e46-4752adf74976","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679741.2912862} 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":"733a3b2cd1f886c3f57c3bc02cebb028"},"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/a08e12e6-c763-48c4-bf3f-b91cab39dd2f? 200 20ms","method":"GET","requestID":"733a3b2cd1f886c3f57c3bc02cebb028","responseTime":20,"status":200,"url":"/devices/a08e12e6-c763-48c4-bf3f-b91cab39dd2f?"} gateway-1 | {"time_local":"06/Jun/2024:13:15:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a08e12e6-c763-48c4-bf3f-b91cab39dd2f? 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":"733a3b2cd1f886c3f57c3bc02cebb028"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0MX0.gxO2QyxtIhD7HVZw15-Cf-wuhUGYtJ3t724pczK79p0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"fb42d72f079cef32bbc9ea5fb7f112c0","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":322,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":322,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.564824,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679741,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0MX0.gxO2QyxtIhD7HVZw15-Cf-wuhUGYtJ3t724pczK79p0"} 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":"fb42d72f079cef32bbc9ea5fb7f112c0"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feef16cb8-43d0-4fcd-90a2-29f99fb56274","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feef16cb8-43d0-4fcd-90a2-29f99fb56274","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:39.255116908Z"}]},"request_id":"e86a38d0-c364-4fbc-8ad6-623fc5d2276f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679741.3213334} 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":"fb42d72f079cef32bbc9ea5fb7f112c0"},"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":"06/Jun/2024:13:15:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274? 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":"fb42d72f079cef32bbc9ea5fb7f112c0"} device-1 | {"level":"info","message":"GET /devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274? 200 20ms","method":"GET","requestID":"fb42d72f079cef32bbc9ea5fb7f112c0","responseTime":20,"status":200,"url":"/devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0MX0.gxO2QyxtIhD7HVZw15-Cf-wuhUGYtJ3t724pczK79p0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"6a7e5e03caeecaf34035834b734bbcab","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:36466","level":"info","msg":"Received request.","req_id":323,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":323,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.399164,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679741,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0MX0.gxO2QyxtIhD7HVZw15-Cf-wuhUGYtJ3t724pczK79p0"} 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":"6a7e5e03caeecaf34035834b734bbcab"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/008ebf19-2d1e-43ce-acbe-2b229243853d"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/008ebf19-2d1e-43ce-acbe-2b229243853d"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/008ebf19-2d1e-43ce-acbe-2b229243853d"},"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:36466","level":"info","msg":"Received request.","req_id":324,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":324,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.809168,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":325,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a08e12e6-c763-48c4-bf3f-b91cab39dd2f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/a08e12e6-c763-48c4-bf3f-b91cab39dd2f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679741,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0MX0.gxO2QyxtIhD7HVZw15-Cf-wuhUGYtJ3t724pczK79p0"} 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":"dfbb9130-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":325,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.310925,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679741,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0MX0.gxO2QyxtIhD7HVZw15-Cf-wuhUGYtJ3t724pczK79p0"} 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":"dfbbdf50-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa08e12e6-c763-48c4-bf3f-b91cab39dd2f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa08e12e6-c763-48c4-bf3f-b91cab39dd2f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:39.202526489Z"}]},"request_id":"8aec5796-cc22-4364-86c6-3f04b3a5a827","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679741.3919778} 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":"dfbb9130-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feef16cb8-43d0-4fcd-90a2-29f99fb56274","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feef16cb8-43d0-4fcd-90a2-29f99fb56274","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:39.255116908Z"}]},"request_id":"c93d6609-9982-441d-9f4a-69ee5fd5a6f0","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679741.393254} 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":"dfbbdf50-2406-11ef-9563-e3996e819f8c"},"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/a08e12e6-c763-48c4-bf3f-b91cab39dd2f? 200 22ms","method":"GET","requestID":"dfbb9130-2406-11ef-9563-e3996e819f8c","responseTime":22,"status":200,"url":"/devices/a08e12e6-c763-48c4-bf3f-b91cab39dd2f?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274? 200 21ms","method":"GET","requestID":"dfbbdf50-2406-11ef-9563-e3996e819f8c","responseTime":21,"status":200,"url":"/devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/008ebf19-2d1e-43ce-acbe-2b229243853d"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/008ebf19-2d1e-43ce-acbe-2b229243853d"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/008ebf19-2d1e-43ce-acbe-2b229243853d"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/008ebf19-2d1e-43ce-acbe-2b229243853d"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/008ebf19-2d1e-43ce-acbe-2b229243853d"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/008ebf19-2d1e-43ce-acbe-2b229243853d"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/008ebf19-2d1e-43ce-acbe-2b229243853d"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/008ebf19-2d1e-43ce-acbe-2b229243853d"},"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:36466","level":"info","msg":"Received request.","req_id":326,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":326,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.219045,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:41Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/008ebf19-2d1e-43ce-acbe-2b229243853d"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a08e12e6-c763-48c4-bf3f-b91cab39dd2f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/a08e12e6-c763-48c4-bf3f-b91cab39dd2f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679741,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0MX0.gxO2QyxtIhD7HVZw15-Cf-wuhUGYtJ3t724pczK79p0"} 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":"dfc729f0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":327,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":327,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.964591,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679741,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0MX0.gxO2QyxtIhD7HVZw15-Cf-wuhUGYtJ3t724pczK79p0"} 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":"dfc77810-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa08e12e6-c763-48c4-bf3f-b91cab39dd2f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa08e12e6-c763-48c4-bf3f-b91cab39dd2f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:39.202526489Z"}]},"request_id":"885838fc-5b5b-4afe-81bc-1de9b30eca35","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679741.4686263} 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":"dfc729f0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feef16cb8-43d0-4fcd-90a2-29f99fb56274","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feef16cb8-43d0-4fcd-90a2-29f99fb56274","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:39.255116908Z"}]},"request_id":"8ce2d05d-3bb1-448c-9d47-56247cf00952","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679741.4702637} 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":"dfc77810-2406-11ef-9563-e3996e819f8c"},"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/a08e12e6-c763-48c4-bf3f-b91cab39dd2f? 200 22ms","method":"GET","requestID":"dfc729f0-2406-11ef-9563-e3996e819f8c","responseTime":22,"status":200,"url":"/devices/a08e12e6-c763-48c4-bf3f-b91cab39dd2f?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274? 200 22ms","method":"GET","requestID":"dfc77810-2406-11ef-9563-e3996e819f8c","responseTime":22,"status":200,"url":"/devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F008ebf19-2d1e-43ce-acbe-2b229243853d#owner@http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F008ebf19-2d1e-43ce-acbe-2b229243853d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"f1c9e42b-7905-42c2-86b1-5da1dd429543","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679741.48473} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"83245a07-99f4-4791-b8c8-66157f2f4b1b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679741.4851127} 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":"6a7e5e03caeecaf34035834b734bbcab"},"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:36466","level":"info","msg":"Received request.","req_id":328,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":328,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.594826,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/a08e12e6-c763-48c4-bf3f-b91cab39dd2f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a08e12e6-c763-48c4-bf3f-b91cab39dd2f","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dfcb48a0-2406-11ef-9563-e3996e819f8c"},"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/a08e12e6-c763-48c4-bf3f-b91cab39dd2f/signaling 200 14ms","method":"POST","requestID":"dfcb48a0-2406-11ef-9563-e3996e819f8c","responseTime":14,"status":200,"url":"/devices/a08e12e6-c763-48c4-bf3f-b91cab39dd2f/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/008ebf19-2d1e-43ce-acbe-2b229243853d","user":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} gateway-1 | {"time_local":"06/Jun/2024:13:15:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1211","request_time":"0.174","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6a7e5e03caeecaf34035834b734bbcab"} experiment-1 | {"level":"info","message":"POST /experiments? 201 167ms","method":"POST","requestID":"6a7e5e03caeecaf34035834b734bbcab","responseTime":167,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":329,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":329,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.45917,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dfce2ed0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0MX0.gxO2QyxtIhD7HVZw15-Cf-wuhUGYtJ3t724pczK79p0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"41521dc041f9240629e5f94df3ecfe97","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274/signaling 200 12ms","method":"POST","requestID":"dfce2ed0-2406-11ef-9563-e3996e819f8c","responseTime":12,"status":200,"url":"/devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/008ebf19-2d1e-43ce-acbe-2b229243853d"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/008ebf19-2d1e-43ce-acbe-2b229243853d"},"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":"1824e4b3-b029-4634-ae7a-0f9fb98f3350"},{"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":"b4f60a0a-a68b-4340-888e-6270768daab1"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"ce212391-8928-4bda-9308-7f9ac966a01c"}]},"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/a08e12e6-c763-48c4-bf3f-b91cab39dd2f"},{"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/eef16cb8-43d0-4fcd-90a2-29f99fb56274"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":330,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":330,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.753165,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a08e12e6-c763-48c4-bf3f-b91cab39dd2f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/a08e12e6-c763-48c4-bf3f-b91cab39dd2f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679741,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0MX0.gxO2QyxtIhD7HVZw15-Cf-wuhUGYtJ3t724pczK79p0"} 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":"41521dc041f9240629e5f94df3ecfe97"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":331,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":331,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.263674,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679741,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0MX0.gxO2QyxtIhD7HVZw15-Cf-wuhUGYtJ3t724pczK79p0"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","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":"dfd0c6e0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa08e12e6-c763-48c4-bf3f-b91cab39dd2f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa08e12e6-c763-48c4-bf3f-b91cab39dd2f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:39.202526489Z"}]},"request_id":"18edfb76-6cf1-4bf2-9072-fbad12fb9ed0","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679741.5295992} 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":"41521dc041f9240629e5f94df3ecfe97"},"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/a08e12e6-c763-48c4-bf3f-b91cab39dd2f? 200 22ms","method":"GET","requestID":"41521dc041f9240629e5f94df3ecfe97","responseTime":22,"status":200,"url":"/devices/a08e12e6-c763-48c4-bf3f-b91cab39dd2f?"} gateway-1 | {"time_local":"06/Jun/2024:13:15:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a08e12e6-c763-48c4-bf3f-b91cab39dd2f? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.031","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"41521dc041f9240629e5f94df3ecfe97"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"7d1426ce-1872-4aeb-b60e-c266ff8507d9","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679741.5388584} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"125d392b-7884-4f92-96c6-72b0f6b89be3","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679741.5390775} 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":"dfd0c6e0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0MX0.gxO2QyxtIhD7HVZw15-Cf-wuhUGYtJ3t724pczK79p0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e051c107b43595ac78eaec0efda8357d","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":332,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":332,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.070492,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679741,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0MX0.gxO2QyxtIhD7HVZw15-Cf-wuhUGYtJ3t724pczK79p0"} 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":"e051c107b43595ac78eaec0efda8357d"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feef16cb8-43d0-4fcd-90a2-29f99fb56274","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feef16cb8-43d0-4fcd-90a2-29f99fb56274","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:39.255116908Z"}]},"request_id":"5632bdbf-e2d3-4708-b4fa-c149d2b79777","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679741.5553582} 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/4912e1ba-248c-4369-8402-1c114a69e26d'"} 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":"e051c107b43595ac78eaec0efda8357d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/4912e1ba-248c-4369-8402-1c114a69e26d'"} 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":"dfd0c6e0-2406-11ef-9563-e3996e819f8c","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":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"06/Jun/2024:13:15:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274? 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":"e051c107b43595ac78eaec0efda8357d"} device-1 | {"level":"info","message":"GET /devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274? 200 20ms","method":"GET","requestID":"e051c107b43595ac78eaec0efda8357d","responseTime":20,"status":200,"url":"/devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/008ebf19-2d1e-43ce-acbe-2b229243853d"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/4912e1ba-248c-4369-8402-1c114a69e26d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4912e1ba-248c-4369-8402-1c114a69e26d","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"7432552f5c0dd217c298c08ccb3e329b","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/a08e12e6-c763-48c4-bf3f-b91cab39dd2f"},{"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/eef16cb8-43d0-4fcd-90a2-29f99fb56274"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/4912e1ba-248c-4369-8402-1c114a69e26d"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 9ms","method":"POST","requestID":"7432552f5c0dd217c298c08ccb3e329b","responseTime":9,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:41 +0000","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":"7432552f5c0dd217c298c08ccb3e329b"} device-1 | {"data":{"peerconnection":"4912e1ba-248c-4369-8402-1c114a69e26d","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"4912e1ba-248c-4369-8402-1c114a69e26d","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/4912e1ba-248c-4369-8402-1c114a69e26d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4912e1ba-248c-4369-8402-1c114a69e26d","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"73908338eea4c9332cdc4c7dc3316bad","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/a08e12e6-c763-48c4-bf3f-b91cab39dd2f"},{"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/eef16cb8-43d0-4fcd-90a2-29f99fb56274"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/4912e1ba-248c-4369-8402-1c114a69e26d"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":333,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","contextual_tuples":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4912e1ba-248c-4369-8402-1c114a69e26d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d760d105-3200-443e-9799-e6fd649ff261","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679741.8228984} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":333,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.469637,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4912e1ba-248c-4369-8402-1c114a69e26d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/4912e1ba-248c-4369-8402-1c114a69e26d","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":"dffe3f80-2406-11ef-9563-e3996e819f8c"},"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/4912e1ba-248c-4369-8402-1c114a69e26d 200 12ms","method":"GET","requestID":"dffe3f80-2406-11ef-9563-e3996e819f8c","responseTime":12,"status":200,"url":"/peerconnections/4912e1ba-248c-4369-8402-1c114a69e26d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 47ms","method":"POST","requestID":"73908338eea4c9332cdc4c7dc3316bad","responseTime":47,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.052","http_referrer":"","http_user_agent":"node-fetch","requestID":"73908338eea4c9332cdc4c7dc3316bad"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0MX0.gxO2QyxtIhD7HVZw15-Cf-wuhUGYtJ3t724pczK79p0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e15c0d886214d8dbad40375665c55db5","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/008ebf19-2d1e-43ce-acbe-2b229243853d"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":334,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":334,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.308075,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/008ebf19-2d1e-43ce-acbe-2b229243853d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/008ebf19-2d1e-43ce-acbe-2b229243853d","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679741,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0MX0.gxO2QyxtIhD7HVZw15-Cf-wuhUGYtJ3t724pczK79p0"} 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":"e15c0d886214d8dbad40375665c55db5"},"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/008ebf19-2d1e-43ce-acbe-2b229243853d"} gateway-1 | {"time_local":"06/Jun/2024:13:15:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/008ebf19-2d1e-43ce-acbe-2b229243853d HTTP/1.1","status": "200","body_bytes_sent":"1284","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e15c0d886214d8dbad40375665c55db5"} experiment-1 | {"level":"info","message":"GET /experiments/008ebf19-2d1e-43ce-acbe-2b229243853d 200 16ms","method":"GET","requestID":"e15c0d886214d8dbad40375665c55db5","responseTime":16,"status":200,"url":"/experiments/008ebf19-2d1e-43ce-acbe-2b229243853d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0MX0.gxO2QyxtIhD7HVZw15-Cf-wuhUGYtJ3t724pczK79p0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ebd74b740cde55c23c021c621f57764e","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/008ebf19-2d1e-43ce-acbe-2b229243853d"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":335,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":335,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.266857,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/008ebf19-2d1e-43ce-acbe-2b229243853d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/008ebf19-2d1e-43ce-acbe-2b229243853d","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679741,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0MX0.gxO2QyxtIhD7HVZw15-Cf-wuhUGYtJ3t724pczK79p0"} 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":"ebd74b740cde55c23c021c621f57764e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/008ebf19-2d1e-43ce-acbe-2b229243853d"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":336,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":336,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.649006,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:41Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4912e1ba-248c-4369-8402-1c114a69e26d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:http://localhost/peerconnections/4912e1ba-248c-4369-8402-1c114a69e26d","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679741,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0MX0.gxO2QyxtIhD7HVZw15-Cf-wuhUGYtJ3t724pczK79p0"} 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":"e0117960-2406-11ef-9563-e3996e819f8c"},"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/4912e1ba-248c-4369-8402-1c114a69e26d' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/4912e1ba-248c-4369-8402-1c114a69e26d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4912e1ba-248c-4369-8402-1c114a69e26d","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4912e1ba-248c-4369-8402-1c114a69e26d': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4912e1ba-248c-4369-8402-1c114a69e26d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"2d68054a-2afa-41e0-925b-bb8e6832e9c0","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679741.9687493} 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f8fd584c55bceba40e09a3fbdbe8e82b","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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"feaf8bcb-f2a5-48ea-9905-d45c6ac4c320","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679741.969493} 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"e041027d7a262207eb0ab12bbe57d94f","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":"closed","url":"http://localhost/devices/a08e12e6-c763-48c4-bf3f-b91cab39dd2f"},{"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/eef16cb8-43d0-4fcd-90a2-29f99fb56274"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/4912e1ba-248c-4369-8402-1c114a69e26d"}}},"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":"e0117960-2406-11ef-9563-e3996e819f8c"},"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":"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/a08e12e6-c763-48c4-bf3f-b91cab39dd2f"},{"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/eef16cb8-43d0-4fcd-90a2-29f99fb56274"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/4912e1ba-248c-4369-8402-1c114a69e26d"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"4912e1ba-248c-4369-8402-1c114a69e26d","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/4912e1ba-248c-4369-8402-1c114a69e26d 204 53ms","method":"DELETE","requestID":"e0117960-2406-11ef-9563-e3996e819f8c","responseTime":53,"status":204,"url":"/peerconnections/4912e1ba-248c-4369-8402-1c114a69e26d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/008ebf19-2d1e-43ce-acbe-2b229243853d"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F008ebf19-2d1e-43ce-acbe-2b229243853d': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F008ebf19-2d1e-43ce-acbe-2b229243853d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"b64d8373-7f6e-406a-8e68-4efe9f9c8338","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679742.0326166} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fdcc506e-719f-4113-99be-3b2a120b8897","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679742.0332875} 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":"ebd74b740cde55c23c021c621f57764e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":16}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/008ebf19-2d1e-43ce-acbe-2b229243853d"} gateway-1 | {"time_local":"06/Jun/2024:13:15:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/008ebf19-2d1e-43ce-acbe-2b229243853d 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":"ebd74b740cde55c23c021c621f57764e"} experiment-1 | {"level":"info","message":"DELETE /experiments/008ebf19-2d1e-43ce-acbe-2b229243853d 204 174ms","method":"DELETE","requestID":"ebd74b740cde55c23c021c621f57764e","responseTime":174,"status":204,"url":"/experiments/008ebf19-2d1e-43ce-acbe-2b229243853d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 130ms","method":"POST","requestID":"f8fd584c55bceba40e09a3fbdbe8e82b","responseTime":130,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.135","http_referrer":"","http_user_agent":"node-fetch","requestID":"f8fd584c55bceba40e09a3fbdbe8e82b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 130ms","method":"POST","requestID":"e041027d7a262207eb0ab12bbe57d94f","responseTime":130,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.137","http_referrer":"","http_user_agent":"node-fetch","requestID":"e041027d7a262207eb0ab12bbe57d94f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0Mn0.Kn69B-5YPtuJvO9PwkWnFzkZtWmeh32W8an1kNPEQhU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"6bf315ddb193913694ab785bccb9336c","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"06/Jun/2024:13:15:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1689","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":"db92869454135183348bb22ead0938d7"} gateway-1 | {"time_local":"06/Jun/2024:13:15:42 +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.853","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"7df60dfca6402ac77f5d975c32d8aebd"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":337,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:42Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":337,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.798924,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:42Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679742,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0Mn0.Kn69B-5YPtuJvO9PwkWnFzkZtWmeh32W8an1kNPEQhU"} 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":"6bf315ddb193913694ab785bccb9336c"},"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/a08e12e6-c763-48c4-bf3f-b91cab39dd2f' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/eef16cb8-43d0-4fcd-90a2-29f99fb56274' 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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed15980a-ff83-4285-97cf-2e579f80aa0d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"22e38d0c-e61b-4fe3-8378-826d283bdea8","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679742.1350048} 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":"6bf315ddb193913694ab785bccb9336c"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f2fa0d23-4163-468f-9c0c-9f14139cf002","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679742.139277} 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":"6bf315ddb193913694ab785bccb9336c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed15980a-ff83-4285-97cf-2e579f80aa0d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"7c93f39b-330b-4055-9ca1-0ab92ea914c5","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679742.150438} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"eab3d184-905f-4b29-809c-733bf711af99","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679742.1504896} 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":"6bf315ddb193913694ab785bccb9336c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed15980a-ff83-4285-97cf-2e579f80aa0d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed15980a-ff83-4285-97cf-2e579f80aa0d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:42.150411824Z"}]},"request_id":"9266c28d-abf5-4d5e-ab14-17ed03155e1c","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679742.1545134} 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":"6bf315ddb193913694ab785bccb9336c"},"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":"06/Jun/2024:13:15:42 +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":"6bf315ddb193913694ab785bccb9336c"} device-1 | {"level":"info","message":"POST /devices? 201 49ms","method":"POST","requestID":"6bf315ddb193913694ab785bccb9336c","responseTime":49,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0Mn0.Kn69B-5YPtuJvO9PwkWnFzkZtWmeh32W8an1kNPEQhU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"35644abc03c7af79709157c1c6adeed9","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":338,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:42Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":338,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.785277,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:42Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679742,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0Mn0.Kn69B-5YPtuJvO9PwkWnFzkZtWmeh32W8an1kNPEQhU"} 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":"35644abc03c7af79709157c1c6adeed9"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bdad189-fa68-4ec4-9cd5-d454d3349678","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"9355f6c1-7227-4d8f-8e19-cfb810ae559c","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679742.1779017} 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":"35644abc03c7af79709157c1c6adeed9"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7db156fd-b3ab-4358-b6f2-c0bfb36762ea","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679742.1823657} 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":"35644abc03c7af79709157c1c6adeed9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bdad189-fa68-4ec4-9cd5-d454d3349678","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"3956e461-37a9-4e5f-bc3d-a930471fccd0","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679742.1907656} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"405de057-9229-4d8a-8502-431926ca7ab5","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679742.1909063} 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":"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":"35644abc03c7af79709157c1c6adeed9"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bdad189-fa68-4ec4-9cd5-d454d3349678","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bdad189-fa68-4ec4-9cd5-d454d3349678","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:42.190746650Z"}]},"request_id":"d6c40f21-b1ec-4aa8-9c31-84b00383ad28","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679742.1944923} 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":"35644abc03c7af79709157c1c6adeed9"},"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 34ms","method":"POST","requestID":"35644abc03c7af79709157c1c6adeed9","responseTime":34,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"06/Jun/2024:13:15:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.038","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"35644abc03c7af79709157c1c6adeed9"} 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"8b535f2f945e1b431bef4c5e1a774ef1","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"0acb0332d32978fefa0f4f37fecf55aa","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"06/Jun/2024:13:15:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/ed15980a-ff83-4285-97cf-2e579f80aa0d/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":"8b535f2f945e1b431bef4c5e1a774ef1"} device-1 | {"level":"info","message":"OPTIONS /devices/ed15980a-ff83-4285-97cf-2e579f80aa0d/websocket 200 1ms","method":"OPTIONS","requestID":"8b535f2f945e1b431bef4c5e1a774ef1","responseTime":1,"status":200,"url":"/devices/ed15980a-ff83-4285-97cf-2e579f80aa0d/websocket"} gateway-1 | {"time_local":"06/Jun/2024:13:15:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/6bdad189-fa68-4ec4-9cd5-d454d3349678/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":"0acb0332d32978fefa0f4f37fecf55aa"} device-1 | {"level":"info","message":"OPTIONS /devices/6bdad189-fa68-4ec4-9cd5-d454d3349678/websocket 200 1ms","method":"OPTIONS","requestID":"0acb0332d32978fefa0f4f37fecf55aa","responseTime":1,"status":200,"url":"/devices/6bdad189-fa68-4ec4-9cd5-d454d3349678/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NH0.S8YjgESUo1htn3yEb3CenP8Wu_RZ35cmNuq929GamP0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"9e0df719a4035b4b049219d0a077418d","responseTime":6,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NH0.S8YjgESUo1htn3yEb3CenP8Wu_RZ35cmNuq929GamP0","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"7801e6c0de71cedb3c9aa9629ab949ef","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":339,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":339,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.27703,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ed15980a-ff83-4285-97cf-2e579f80aa0d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/ed15980a-ff83-4285-97cf-2e579f80aa0d","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679744,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NH0.S8YjgESUo1htn3yEb3CenP8Wu_RZ35cmNuq929GamP0"} 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":"9e0df719a4035b4b049219d0a077418d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":340,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":340,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.370407,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6bdad189-fa68-4ec4-9cd5-d454d3349678","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/6bdad189-fa68-4ec4-9cd5-d454d3349678","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679744,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NH0.S8YjgESUo1htn3yEb3CenP8Wu_RZ35cmNuq929GamP0"} 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":"7801e6c0de71cedb3c9aa9629ab949ef"},"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":"06/Jun/2024:13:15:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/6bdad189-fa68-4ec4-9cd5-d454d3349678/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.026","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"7801e6c0de71cedb3c9aa9629ab949ef"} device-1 | {"level":"info","message":"POST /devices/6bdad189-fa68-4ec4-9cd5-d454d3349678/websocket 200 18ms","method":"POST","requestID":"7801e6c0de71cedb3c9aa9629ab949ef","responseTime":18,"status":200,"url":"/devices/6bdad189-fa68-4ec4-9cd5-d454d3349678/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"06/Jun/2024:13:15:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/ed15980a-ff83-4285-97cf-2e579f80aa0d/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.037","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"9e0df719a4035b4b049219d0a077418d"} device-1 | {"level":"info","message":"POST /devices/ed15980a-ff83-4285-97cf-2e579f80aa0d/websocket 200 31ms","method":"POST","requestID":"9e0df719a4035b4b049219d0a077418d","responseTime":31,"status":200,"url":"/devices/ed15980a-ff83-4285-97cf-2e579f80aa0d/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/6bdad189-fa68-4ec4-9cd5-d454d3349678' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/ed15980a-ff83-4285-97cf-2e579f80aa0d' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NH0.S8YjgESUo1htn3yEb3CenP8Wu_RZ35cmNuq929GamP0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5d02231ca2b145971f000af95acbe8db","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":341,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":341,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.893707,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ed15980a-ff83-4285-97cf-2e579f80aa0d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/ed15980a-ff83-4285-97cf-2e579f80aa0d","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679744,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NH0.S8YjgESUo1htn3yEb3CenP8Wu_RZ35cmNuq929GamP0"} 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":"5d02231ca2b145971f000af95acbe8db"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed15980a-ff83-4285-97cf-2e579f80aa0d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed15980a-ff83-4285-97cf-2e579f80aa0d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:42.150411824Z"}]},"request_id":"55c5af89-24e2-490a-b014-cbe161dde6eb","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679744.256597} 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":"5d02231ca2b145971f000af95acbe8db"},"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":"06/Jun/2024:13:15:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ed15980a-ff83-4285-97cf-2e579f80aa0d? 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":"5d02231ca2b145971f000af95acbe8db"} device-1 | {"level":"info","message":"GET /devices/ed15980a-ff83-4285-97cf-2e579f80aa0d? 200 17ms","method":"GET","requestID":"5d02231ca2b145971f000af95acbe8db","responseTime":17,"status":200,"url":"/devices/ed15980a-ff83-4285-97cf-2e579f80aa0d?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NH0.S8YjgESUo1htn3yEb3CenP8Wu_RZ35cmNuq929GamP0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5888e6534947de9f32392b5a423c0f38","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":342,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":342,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.273896,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6bdad189-fa68-4ec4-9cd5-d454d3349678","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/6bdad189-fa68-4ec4-9cd5-d454d3349678","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679744,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NH0.S8YjgESUo1htn3yEb3CenP8Wu_RZ35cmNuq929GamP0"} 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":"5888e6534947de9f32392b5a423c0f38"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bdad189-fa68-4ec4-9cd5-d454d3349678","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bdad189-fa68-4ec4-9cd5-d454d3349678","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:42.190746650Z"}]},"request_id":"cdda3677-a3ca-45fe-ac75-25d606e31e08","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679744.2843292} 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":"5888e6534947de9f32392b5a423c0f38"},"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":"06/Jun/2024:13:15:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6bdad189-fa68-4ec4-9cd5-d454d3349678? 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":"5888e6534947de9f32392b5a423c0f38"} device-1 | {"level":"info","message":"GET /devices/6bdad189-fa68-4ec4-9cd5-d454d3349678? 200 20ms","method":"GET","requestID":"5888e6534947de9f32392b5a423c0f38","responseTime":20,"status":200,"url":"/devices/6bdad189-fa68-4ec4-9cd5-d454d3349678?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NH0.S8YjgESUo1htn3yEb3CenP8Wu_RZ35cmNuq929GamP0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d0b4d2b2f33f2aea7241dc8a3e56560b","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:36466","level":"info","msg":"Received request.","req_id":343,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":343,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.011739,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679744,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NH0.S8YjgESUo1htn3yEb3CenP8Wu_RZ35cmNuq929GamP0"} 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":"d0b4d2b2f33f2aea7241dc8a3e56560b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6587145f-744c-4dab-ad16-2b73372f890c"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6587145f-744c-4dab-ad16-2b73372f890c"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6587145f-744c-4dab-ad16-2b73372f890c"},"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:36466","level":"info","msg":"Received request.","req_id":344,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":344,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.394376,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ed15980a-ff83-4285-97cf-2e579f80aa0d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/ed15980a-ff83-4285-97cf-2e579f80aa0d","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679744,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NH0.S8YjgESUo1htn3yEb3CenP8Wu_RZ35cmNuq929GamP0"} 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":"e17faf60-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":345,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":345,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.021795,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6bdad189-fa68-4ec4-9cd5-d454d3349678","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/6bdad189-fa68-4ec4-9cd5-d454d3349678","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679744,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NH0.S8YjgESUo1htn3yEb3CenP8Wu_RZ35cmNuq929GamP0"} 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":"e17ffd80-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed15980a-ff83-4285-97cf-2e579f80aa0d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed15980a-ff83-4285-97cf-2e579f80aa0d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:42.150411824Z"}]},"request_id":"67a4d0b2-db5b-43da-bb15-2c4c679c63b3","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679744.3560004} 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":"e17faf60-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bdad189-fa68-4ec4-9cd5-d454d3349678","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bdad189-fa68-4ec4-9cd5-d454d3349678","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:42.190746650Z"}]},"request_id":"6419d0d1-50c0-494c-8f8a-bcfe60e7e058","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679744.357778} 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":"e17ffd80-2406-11ef-9563-e3996e819f8c"},"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/ed15980a-ff83-4285-97cf-2e579f80aa0d? 200 24ms","method":"GET","requestID":"e17faf60-2406-11ef-9563-e3996e819f8c","responseTime":24,"status":200,"url":"/devices/ed15980a-ff83-4285-97cf-2e579f80aa0d?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/6bdad189-fa68-4ec4-9cd5-d454d3349678? 200 23ms","method":"GET","requestID":"e17ffd80-2406-11ef-9563-e3996e819f8c","responseTime":23,"status":200,"url":"/devices/6bdad189-fa68-4ec4-9cd5-d454d3349678?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6587145f-744c-4dab-ad16-2b73372f890c"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6587145f-744c-4dab-ad16-2b73372f890c"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6587145f-744c-4dab-ad16-2b73372f890c"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6587145f-744c-4dab-ad16-2b73372f890c"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6587145f-744c-4dab-ad16-2b73372f890c"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6587145f-744c-4dab-ad16-2b73372f890c"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6587145f-744c-4dab-ad16-2b73372f890c"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6587145f-744c-4dab-ad16-2b73372f890c"},"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/6587145f-744c-4dab-ad16-2b73372f890c"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":346,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":346,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.96673,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":347,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ed15980a-ff83-4285-97cf-2e579f80aa0d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/ed15980a-ff83-4285-97cf-2e579f80aa0d","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679744,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NH0.S8YjgESUo1htn3yEb3CenP8Wu_RZ35cmNuq929GamP0"} 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":"e18afa00-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":347,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.905744,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6bdad189-fa68-4ec4-9cd5-d454d3349678","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/6bdad189-fa68-4ec4-9cd5-d454d3349678","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679744,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NH0.S8YjgESUo1htn3yEb3CenP8Wu_RZ35cmNuq929GamP0"} 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":"e18b4820-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed15980a-ff83-4285-97cf-2e579f80aa0d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed15980a-ff83-4285-97cf-2e579f80aa0d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:42.150411824Z"}]},"request_id":"e06bbeaa-e6d3-47ce-be4b-1e12ca04b231","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679744.43075} 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":"e18afa00-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bdad189-fa68-4ec4-9cd5-d454d3349678","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bdad189-fa68-4ec4-9cd5-d454d3349678","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:42.190746650Z"}]},"request_id":"26966fbd-b512-4e0d-849c-df66a534fa25","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679744.4314349} 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":"e18b4820-2406-11ef-9563-e3996e819f8c"},"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/ed15980a-ff83-4285-97cf-2e579f80aa0d? 200 24ms","method":"GET","requestID":"e18afa00-2406-11ef-9563-e3996e819f8c","responseTime":24,"status":200,"url":"/devices/ed15980a-ff83-4285-97cf-2e579f80aa0d?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/6bdad189-fa68-4ec4-9cd5-d454d3349678? 200 23ms","method":"GET","requestID":"e18b4820-2406-11ef-9563-e3996e819f8c","responseTime":23,"status":200,"url":"/devices/6bdad189-fa68-4ec4-9cd5-d454d3349678?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6587145f-744c-4dab-ad16-2b73372f890c#owner@http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6587145f-744c-4dab-ad16-2b73372f890c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"84af795b-7807-48fd-85fe-f96ab4d8c93b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679744.445107} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"81f36298-e521-4656-be9e-09a129404991","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679744.445313} 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":"d0b4d2b2f33f2aea7241dc8a3e56560b"},"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:36466","level":"info","msg":"Received request.","req_id":348,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":348,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.013647,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/ed15980a-ff83-4285-97cf-2e579f80aa0d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ed15980a-ff83-4285-97cf-2e579f80aa0d","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e18f18b0-2406-11ef-9563-e3996e819f8c"},"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/ed15980a-ff83-4285-97cf-2e579f80aa0d/signaling 200 12ms","method":"POST","requestID":"e18f18b0-2406-11ef-9563-e3996e819f8c","responseTime":12,"status":200,"url":"/devices/ed15980a-ff83-4285-97cf-2e579f80aa0d/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/6587145f-744c-4dab-ad16-2b73372f890c","user":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} gateway-1 | {"time_local":"06/Jun/2024:13:15:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1211","request_time":"0.167","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d0b4d2b2f33f2aea7241dc8a3e56560b"} experiment-1 | {"level":"info","message":"POST /experiments? 201 161ms","method":"POST","requestID":"d0b4d2b2f33f2aea7241dc8a3e56560b","responseTime":161,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":349,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":349,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.415875,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/6bdad189-fa68-4ec4-9cd5-d454d3349678","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6bdad189-fa68-4ec4-9cd5-d454d3349678","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e19162a0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NH0.S8YjgESUo1htn3yEb3CenP8Wu_RZ35cmNuq929GamP0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"32987f1bcfcfc33c619d672a1f1f2ece","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/6bdad189-fa68-4ec4-9cd5-d454d3349678/signaling 200 12ms","method":"POST","requestID":"e19162a0-2406-11ef-9563-e3996e819f8c","responseTime":12,"status":200,"url":"/devices/6bdad189-fa68-4ec4-9cd5-d454d3349678/signaling"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":350,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:44Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6587145f-744c-4dab-ad16-2b73372f890c"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6587145f-744c-4dab-ad16-2b73372f890c"},"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":"c4598a47-b9e6-4ca2-8ba4-dd82ac7dd538"},{"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":"0a15b5b4-c26c-4e5b-8749-a0b62ca5f3ae"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"1fe8ab40-6fb4-4134-89bc-777724d37890"}]},"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/ed15980a-ff83-4285-97cf-2e579f80aa0d"},{"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/6bdad189-fa68-4ec4-9cd5-d454d3349678"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":350,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.174804,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ed15980a-ff83-4285-97cf-2e579f80aa0d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/ed15980a-ff83-4285-97cf-2e579f80aa0d","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679744,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NH0.S8YjgESUo1htn3yEb3CenP8Wu_RZ35cmNuq929GamP0"} 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":"32987f1bcfcfc33c619d672a1f1f2ece"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":351,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":351,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.073514,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679744,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NH0.S8YjgESUo1htn3yEb3CenP8Wu_RZ35cmNuq929GamP0"} 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":"e193d3a0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed15980a-ff83-4285-97cf-2e579f80aa0d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed15980a-ff83-4285-97cf-2e579f80aa0d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:42.150411824Z"}]},"request_id":"5deb1d96-051a-4548-9c60-4bfae2cc8023","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679744.4796784} 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":"32987f1bcfcfc33c619d672a1f1f2ece"},"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":"06/Jun/2024:13:15:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ed15980a-ff83-4285-97cf-2e579f80aa0d? 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":"32987f1bcfcfc33c619d672a1f1f2ece"} device-1 | {"level":"info","message":"GET /devices/ed15980a-ff83-4285-97cf-2e579f80aa0d? 200 20ms","method":"GET","requestID":"32987f1bcfcfc33c619d672a1f1f2ece","responseTime":20,"status":200,"url":"/devices/ed15980a-ff83-4285-97cf-2e579f80aa0d?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NH0.S8YjgESUo1htn3yEb3CenP8Wu_RZ35cmNuq929GamP0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"8fa3b8a85110e28707fdaa909bcca06c","responseTime":5,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"c223ba16-c8c8-4281-bcab-d1ad58f96760","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679744.495053} device-1 | {"level":"info","message":"getDevicesByDeviceId 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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"277f3edb-b63f-414b-8131-aae991be42cf","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679744.4954972} 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":"e193d3a0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":352,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":352,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.851061,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6bdad189-fa68-4ec4-9cd5-d454d3349678","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/6bdad189-fa68-4ec4-9cd5-d454d3349678","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679744,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NH0.S8YjgESUo1htn3yEb3CenP8Wu_RZ35cmNuq929GamP0"} 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":"8fa3b8a85110e28707fdaa909bcca06c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bdad189-fa68-4ec4-9cd5-d454d3349678","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bdad189-fa68-4ec4-9cd5-d454d3349678","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:42.190746650Z"}]},"request_id":"0038de85-2976-4b92-be52-b8e65266ea86","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679744.505779} 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":"8fa3b8a85110e28707fdaa909bcca06c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"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/78e49d75-503a-4d30-8fc4-e30a38e4721f'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/78e49d75-503a-4d30-8fc4-e30a38e4721f'"} 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":"e193d3a0-2406-11ef-9563-e3996e819f8c","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":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"06/Jun/2024:13:15:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6bdad189-fa68-4ec4-9cd5-d454d3349678? 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":"8fa3b8a85110e28707fdaa909bcca06c"} device-1 | {"level":"info","message":"GET /devices/6bdad189-fa68-4ec4-9cd5-d454d3349678? 200 18ms","method":"GET","requestID":"8fa3b8a85110e28707fdaa909bcca06c","responseTime":18,"status":200,"url":"/devices/6bdad189-fa68-4ec4-9cd5-d454d3349678?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6587145f-744c-4dab-ad16-2b73372f890c"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/78e49d75-503a-4d30-8fc4-e30a38e4721f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"78e49d75-503a-4d30-8fc4-e30a38e4721f","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f0be73f97695fa006766a0718866a05c","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/ed15980a-ff83-4285-97cf-2e579f80aa0d"},{"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/6bdad189-fa68-4ec4-9cd5-d454d3349678"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/78e49d75-503a-4d30-8fc4-e30a38e4721f"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 9ms","method":"POST","requestID":"f0be73f97695fa006766a0718866a05c","responseTime":9,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch","requestID":"f0be73f97695fa006766a0718866a05c"} device-1 | {"data":{"peerconnection":"78e49d75-503a-4d30-8fc4-e30a38e4721f","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"78e49d75-503a-4d30-8fc4-e30a38e4721f","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/78e49d75-503a-4d30-8fc4-e30a38e4721f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"78e49d75-503a-4d30-8fc4-e30a38e4721f","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"995daee36d8f17a064cb782ab7e75568","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/ed15980a-ff83-4285-97cf-2e579f80aa0d"},{"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/6bdad189-fa68-4ec4-9cd5-d454d3349678"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/78e49d75-503a-4d30-8fc4-e30a38e4721f"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":353,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","contextual_tuples":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F78e49d75-503a-4d30-8fc4-e30a38e4721f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"04d33a24-9b8f-4302-9e05-9ab8b7c48926","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679744.762341} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":353,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.831088,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/78e49d75-503a-4d30-8fc4-e30a38e4721f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/78e49d75-503a-4d30-8fc4-e30a38e4721f","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":"e1bedb40-2406-11ef-9563-e3996e819f8c"},"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/78e49d75-503a-4d30-8fc4-e30a38e4721f 200 11ms","method":"GET","requestID":"e1bedb40-2406-11ef-9563-e3996e819f8c","responseTime":11,"status":200,"url":"/peerconnections/78e49d75-503a-4d30-8fc4-e30a38e4721f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 46ms","method":"POST","requestID":"995daee36d8f17a064cb782ab7e75568","responseTime":46,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch","requestID":"995daee36d8f17a064cb782ab7e75568"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NH0.S8YjgESUo1htn3yEb3CenP8Wu_RZ35cmNuq929GamP0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"e98d218aadf7218901174c6550d620b4","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/6587145f-744c-4dab-ad16-2b73372f890c"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":354,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":354,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.260846,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/6587145f-744c-4dab-ad16-2b73372f890c","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/6587145f-744c-4dab-ad16-2b73372f890c","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679744,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NH0.S8YjgESUo1htn3yEb3CenP8Wu_RZ35cmNuq929GamP0"} 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":"e98d218aadf7218901174c6550d620b4"},"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/6587145f-744c-4dab-ad16-2b73372f890c"} gateway-1 | {"time_local":"06/Jun/2024:13:15:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/6587145f-744c-4dab-ad16-2b73372f890c 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":"e98d218aadf7218901174c6550d620b4"} experiment-1 | {"level":"info","message":"GET /experiments/6587145f-744c-4dab-ad16-2b73372f890c 200 17ms","method":"GET","requestID":"e98d218aadf7218901174c6550d620b4","responseTime":17,"status":200,"url":"/experiments/6587145f-744c-4dab-ad16-2b73372f890c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NH0.S8YjgESUo1htn3yEb3CenP8Wu_RZ35cmNuq929GamP0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3efa7e2f582e4a57da0b5b9461338dea","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/6587145f-744c-4dab-ad16-2b73372f890c"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":355,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":355,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.198527,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/6587145f-744c-4dab-ad16-2b73372f890c","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/6587145f-744c-4dab-ad16-2b73372f890c","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679744,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NH0.S8YjgESUo1htn3yEb3CenP8Wu_RZ35cmNuq929GamP0"} 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":"3efa7e2f582e4a57da0b5b9461338dea"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6587145f-744c-4dab-ad16-2b73372f890c"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":356,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":356,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.086008,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:44Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/78e49d75-503a-4d30-8fc4-e30a38e4721f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:http://localhost/peerconnections/78e49d75-503a-4d30-8fc4-e30a38e4721f","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679744,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NH0.S8YjgESUo1htn3yEb3CenP8Wu_RZ35cmNuq929GamP0"} 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":"e1d2ff80-2406-11ef-9563-e3996e819f8c"},"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/78e49d75-503a-4d30-8fc4-e30a38e4721f' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/78e49d75-503a-4d30-8fc4-e30a38e4721f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"78e49d75-503a-4d30-8fc4-e30a38e4721f","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F78e49d75-503a-4d30-8fc4-e30a38e4721f': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F78e49d75-503a-4d30-8fc4-e30a38e4721f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"84082c08-8ad5-4608-8103-7a74bf79b02c","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679744.9126127} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"40c0209a-a8e3-4ca4-b658-7af720f8c7ef","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679744.9132044} 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":"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":"e1d2ff80-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"606b00f8e8395272a8f78b1c5737141c","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/ed15980a-ff83-4285-97cf-2e579f80aa0d"},{"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/6bdad189-fa68-4ec4-9cd5-d454d3349678"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/78e49d75-503a-4d30-8fc4-e30a38e4721f"}}},"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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"ab3109c5b2001d077fd410f01c259d00","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/ed15980a-ff83-4285-97cf-2e579f80aa0d"},{"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/6bdad189-fa68-4ec4-9cd5-d454d3349678"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/78e49d75-503a-4d30-8fc4-e30a38e4721f"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/78e49d75-503a-4d30-8fc4-e30a38e4721f 204 51ms","method":"DELETE","requestID":"e1d2ff80-2406-11ef-9563-e3996e819f8c","responseTime":51,"status":204,"url":"/peerconnections/78e49d75-503a-4d30-8fc4-e30a38e4721f"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/ed15980a-ff83-4285-97cf-2e579f80aa0d'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6587145f-744c-4dab-ad16-2b73372f890c"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6587145f-744c-4dab-ad16-2b73372f890c': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6587145f-744c-4dab-ad16-2b73372f890c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"15192b92-ae6c-4029-a976-49bae9c773fd","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679744.9735196} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4d3a257e-9216-4eb6-a465-372af19d0e27","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679744.9740195} 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":"3efa7e2f582e4a57da0b5b9461338dea"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":16}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/6587145f-744c-4dab-ad16-2b73372f890c"} gateway-1 | {"time_local":"06/Jun/2024:13:15:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/6587145f-744c-4dab-ad16-2b73372f890c HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.175","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3efa7e2f582e4a57da0b5b9461338dea"} experiment-1 | {"level":"info","message":"DELETE /experiments/6587145f-744c-4dab-ad16-2b73372f890c 204 171ms","method":"DELETE","requestID":"3efa7e2f582e4a57da0b5b9461338dea","responseTime":171,"status":204,"url":"/experiments/6587145f-744c-4dab-ad16-2b73372f890c"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 127ms","method":"POST","requestID":"606b00f8e8395272a8f78b1c5737141c","responseTime":127,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.134","http_referrer":"","http_user_agent":"node-fetch","requestID":"606b00f8e8395272a8f78b1c5737141c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NX0.JlvaWddvOHp4ib9xx83r5seDyIIysfz1GIWvAnOLYPw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c8715a6c793b6fc873a2c4b1de23886a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":357,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:45Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":357,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.108431,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:45Z"} gateway-1 | {"time_local":"06/Jun/2024:13:15:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1959","request_time":"0.840","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"b5575b85919dad75f3e6645e4ad5132c"} gateway-1 | {"time_local":"06/Jun/2024:13:15:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1689","request_time":"0.849","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"88c677d5366b4733c749f7fd871cde5a"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679745,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NX0.JlvaWddvOHp4ib9xx83r5seDyIIysfz1GIWvAnOLYPw"} 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":"c8715a6c793b6fc873a2c4b1de23886a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 136ms","method":"POST","requestID":"ab3109c5b2001d077fd410f01c259d00","responseTime":136,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.147","http_referrer":"","http_user_agent":"node-fetch","requestID":"ab3109c5b2001d077fd410f01c259d00"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/ed15980a-ff83-4285-97cf-2e579f80aa0d' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/6bdad189-fa68-4ec4-9cd5-d454d3349678' 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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F265e9624-4505-45ab-83e3-0f443b8108a1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"dd41d542-7d50-47a8-9f8d-7fcf8b7675df","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679745.0839016} 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":"c8715a6c793b6fc873a2c4b1de23886a"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"59a432e3-9c59-44a3-95ab-bf40cdedb0d8","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679745.0893152} 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":"c8715a6c793b6fc873a2c4b1de23886a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F265e9624-4505-45ab-83e3-0f443b8108a1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"a93c0bdb-c43e-441e-a0f3-7fc1f4d4d3d0","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679745.101578} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7d96deaf-4d63-442e-8885-0980068b604d","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679745.101763} 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":"c8715a6c793b6fc873a2c4b1de23886a"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F265e9624-4505-45ab-83e3-0f443b8108a1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F265e9624-4505-45ab-83e3-0f443b8108a1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:45.101555670Z"}]},"request_id":"ec1304e0-604f-46ab-b0bb-20aa8f75d6c1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679745.1063118} 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":"c8715a6c793b6fc873a2c4b1de23886a"},"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":"06/Jun/2024:13:15:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.064","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c8715a6c793b6fc873a2c4b1de23886a"} device-1 | {"level":"info","message":"POST /devices? 201 59ms","method":"POST","requestID":"c8715a6c793b6fc873a2c4b1de23886a","responseTime":59,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NX0.JlvaWddvOHp4ib9xx83r5seDyIIysfz1GIWvAnOLYPw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"fc4e09b3d645238e5879a7aee61b0096","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":358,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:45Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":358,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.939715,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:45Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679745,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NX0.JlvaWddvOHp4ib9xx83r5seDyIIysfz1GIWvAnOLYPw"} 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":"fc4e09b3d645238e5879a7aee61b0096"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2ba765fe-96e9-43c3-8328-91fed3f6799e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"43135392-2ec1-42c3-9b6d-03ffffb40f9e","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679745.13314} 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":"fc4e09b3d645238e5879a7aee61b0096"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e80201d7-ea8b-4a27-8c0b-25b90f906cd3","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679745.1376898} 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":"fc4e09b3d645238e5879a7aee61b0096"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2ba765fe-96e9-43c3-8328-91fed3f6799e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"3f18a6c4-0ec5-4946-b2a2-6125dfa5dcf2","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679745.1471765} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3c953230-d075-47ba-9362-bebf8bc39b8b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679745.1473744} 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":"fc4e09b3d645238e5879a7aee61b0096"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2ba765fe-96e9-43c3-8328-91fed3f6799e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2ba765fe-96e9-43c3-8328-91fed3f6799e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:45.147150151Z"}]},"request_id":"299bf203-eeec-4cc8-954d-510c6570609a","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679745.1526299} 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":"fc4e09b3d645238e5879a7aee61b0096"},"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":"06/Jun/2024:13:15:45 +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":"fc4e09b3d645238e5879a7aee61b0096"} device-1 | {"level":"info","message":"POST /devices? 201 41ms","method":"POST","requestID":"fc4e09b3d645238e5879a7aee61b0096","responseTime":41,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NX0.JlvaWddvOHp4ib9xx83r5seDyIIysfz1GIWvAnOLYPw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"aeca871ae50611a7b39be5be0495d673","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":359,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:45Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":359,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.832766,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:45Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/2ba765fe-96e9-43c3-8328-91fed3f6799e","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/2ba765fe-96e9-43c3-8328-91fed3f6799e","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679745,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NX0.JlvaWddvOHp4ib9xx83r5seDyIIysfz1GIWvAnOLYPw"} 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":"aeca871ae50611a7b39be5be0495d673"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2ba765fe-96e9-43c3-8328-91fed3f6799e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2ba765fe-96e9-43c3-8328-91fed3f6799e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:45.147150151Z"}]},"request_id":"ae5f1442-a9b8-4664-8c26-5a796b80cc58","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679745.6407654} 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":"aeca871ae50611a7b39be5be0495d673"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"621d4d5b-8035-4852-91e3-03657f07743e","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679745.648576} 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":"aeca871ae50611a7b39be5be0495d673"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2ba765fe-96e9-43c3-8328-91fed3f6799e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2ba765fe-96e9-43c3-8328-91fed3f6799e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:45.147150151Z"}]},"request_id":"0b92c3f9-7348-498d-b398-e8a951fed8f6","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679745.6630816} 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":"aeca871ae50611a7b39be5be0495d673"},"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":"06/Jun/2024:13:15:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/2ba765fe-96e9-43c3-8328-91fed3f6799e HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.045","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"aeca871ae50611a7b39be5be0495d673"} device-1 | {"level":"info","message":"PATCH /devices/2ba765fe-96e9-43c3-8328-91fed3f6799e 200 39ms","method":"PATCH","requestID":"aeca871ae50611a7b39be5be0495d673","responseTime":39,"status":200,"url":"/devices/2ba765fe-96e9-43c3-8328-91fed3f6799e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NX0.JlvaWddvOHp4ib9xx83r5seDyIIysfz1GIWvAnOLYPw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1a33ad72d0dcfed601c2c785b9244da2","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":360,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:45Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":360,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.177642,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:45Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/2ba765fe-96e9-43c3-8328-91fed3f6799e","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/2ba765fe-96e9-43c3-8328-91fed3f6799e","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679745,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0NX0.JlvaWddvOHp4ib9xx83r5seDyIIysfz1GIWvAnOLYPw"} 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":"1a33ad72d0dcfed601c2c785b9244da2"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"06/Jun/2024:13:15:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/2ba765fe-96e9-43c3-8328-91fed3f6799e/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":"1a33ad72d0dcfed601c2c785b9244da2"} device-1 | {"level":"info","message":"POST /devices/2ba765fe-96e9-43c3-8328-91fed3f6799e/websocket 200 26ms","method":"POST","requestID":"1a33ad72d0dcfed601c2c785b9244da2","responseTime":26,"status":200,"url":"/devices/2ba765fe-96e9-43c3-8328-91fed3f6799e/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/2ba765fe-96e9-43c3-8328-91fed3f6799e' 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"a154f71ec7d1870840522a980eb96d13","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"06/Jun/2024:13:15:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/265e9624-4505-45ab-83e3-0f443b8108a1/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":"a154f71ec7d1870840522a980eb96d13"} device-1 | {"level":"info","message":"OPTIONS /devices/265e9624-4505-45ab-83e3-0f443b8108a1/websocket 200 1ms","method":"OPTIONS","requestID":"a154f71ec7d1870840522a980eb96d13","responseTime":1,"status":200,"url":"/devices/265e9624-4505-45ab-83e3-0f443b8108a1/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0N30.eDIXxuiicqT3tpxzNMpSVkMd2s9bhIusADcRM0kLxuo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"8e0d34a6b1446b77d89a99f36423698b","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":361,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":361,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.487076,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/265e9624-4505-45ab-83e3-0f443b8108a1","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/265e9624-4505-45ab-83e3-0f443b8108a1","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679747,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0N30.eDIXxuiicqT3tpxzNMpSVkMd2s9bhIusADcRM0kLxuo"} 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":"8e0d34a6b1446b77d89a99f36423698b"},"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/265e9624-4505-45ab-83e3-0f443b8108a1/websocket 200 23ms","method":"POST","requestID":"8e0d34a6b1446b77d89a99f36423698b","responseTime":23,"status":200,"url":"/devices/265e9624-4505-45ab-83e3-0f443b8108a1/websocket"} gateway-1 | {"time_local":"06/Jun/2024:13:15:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/265e9624-4505-45ab-83e3-0f443b8108a1/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.029","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8e0d34a6b1446b77d89a99f36423698b"} device-1 | {"level":"info","message":"device 'http://localhost/devices/265e9624-4505-45ab-83e3-0f443b8108a1' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0N30.eDIXxuiicqT3tpxzNMpSVkMd2s9bhIusADcRM0kLxuo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e683f0612017559316e9037714fb93e2","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":362,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":362,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.151799,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/265e9624-4505-45ab-83e3-0f443b8108a1","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/265e9624-4505-45ab-83e3-0f443b8108a1","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679747,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0N30.eDIXxuiicqT3tpxzNMpSVkMd2s9bhIusADcRM0kLxuo"} 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":"e683f0612017559316e9037714fb93e2"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F265e9624-4505-45ab-83e3-0f443b8108a1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F265e9624-4505-45ab-83e3-0f443b8108a1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:45.101555670Z"}]},"request_id":"ac464fd1-064e-4907-ab75-1c698cdccc21","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679747.2367659} 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":"e683f0612017559316e9037714fb93e2"},"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":"06/Jun/2024:13:15:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/265e9624-4505-45ab-83e3-0f443b8108a1? 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":"e683f0612017559316e9037714fb93e2"} device-1 | {"level":"info","message":"GET /devices/265e9624-4505-45ab-83e3-0f443b8108a1? 200 20ms","method":"GET","requestID":"e683f0612017559316e9037714fb93e2","responseTime":20,"status":200,"url":"/devices/265e9624-4505-45ab-83e3-0f443b8108a1?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0N30.eDIXxuiicqT3tpxzNMpSVkMd2s9bhIusADcRM0kLxuo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"61e0a6d27fa152a6f81119d6aa21edfc","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":363,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":363,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.312059,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2ba765fe-96e9-43c3-8328-91fed3f6799e","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/2ba765fe-96e9-43c3-8328-91fed3f6799e","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679747,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0N30.eDIXxuiicqT3tpxzNMpSVkMd2s9bhIusADcRM0kLxuo"} 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":"61e0a6d27fa152a6f81119d6aa21edfc"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2ba765fe-96e9-43c3-8328-91fed3f6799e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2ba765fe-96e9-43c3-8328-91fed3f6799e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:45.147150151Z"}]},"request_id":"9784bdb1-8699-48c0-b754-71c523bb7c85","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679747.2627418} 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":"61e0a6d27fa152a6f81119d6aa21edfc"},"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":"06/Jun/2024:13:15:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2ba765fe-96e9-43c3-8328-91fed3f6799e? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.024","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"61e0a6d27fa152a6f81119d6aa21edfc"} device-1 | {"level":"info","message":"GET /devices/2ba765fe-96e9-43c3-8328-91fed3f6799e? 200 18ms","method":"GET","requestID":"61e0a6d27fa152a6f81119d6aa21edfc","responseTime":18,"status":200,"url":"/devices/2ba765fe-96e9-43c3-8328-91fed3f6799e?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0N30.eDIXxuiicqT3tpxzNMpSVkMd2s9bhIusADcRM0kLxuo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"c61466c5732112e9d5c3148f395d7b93","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:36466","level":"info","msg":"Received request.","req_id":364,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":364,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.253019,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679747,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0N30.eDIXxuiicqT3tpxzNMpSVkMd2s9bhIusADcRM0kLxuo"} 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":"c61466c5732112e9d5c3148f395d7b93"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af"},"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:36466","level":"info","msg":"Received request.","req_id":365,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":365,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.592474,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":366,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/265e9624-4505-45ab-83e3-0f443b8108a1","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/265e9624-4505-45ab-83e3-0f443b8108a1","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679747,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0N30.eDIXxuiicqT3tpxzNMpSVkMd2s9bhIusADcRM0kLxuo"} 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":"e347c530-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":366,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.59094,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2ba765fe-96e9-43c3-8328-91fed3f6799e","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/2ba765fe-96e9-43c3-8328-91fed3f6799e","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679747,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0N30.eDIXxuiicqT3tpxzNMpSVkMd2s9bhIusADcRM0kLxuo"} 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":"e3481350-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F265e9624-4505-45ab-83e3-0f443b8108a1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F265e9624-4505-45ab-83e3-0f443b8108a1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:45.101555670Z"}]},"request_id":"98fd30b6-5f82-4a76-bfae-05c43ff19a5b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679747.338776} 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":"e347c530-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2ba765fe-96e9-43c3-8328-91fed3f6799e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2ba765fe-96e9-43c3-8328-91fed3f6799e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:45.147150151Z"}]},"request_id":"bf99c60c-35c3-4539-9081-315cca93f6c7","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679747.3395667} 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":"e3481350-2406-11ef-9563-e3996e819f8c"},"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/265e9624-4505-45ab-83e3-0f443b8108a1? 200 14ms","method":"GET","requestID":"e347c530-2406-11ef-9563-e3996e819f8c","responseTime":14,"status":200,"url":"/devices/265e9624-4505-45ab-83e3-0f443b8108a1?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/2ba765fe-96e9-43c3-8328-91fed3f6799e? 200 14ms","method":"GET","requestID":"e3481350-2406-11ef-9563-e3996e819f8c","responseTime":14,"status":200,"url":"/devices/2ba765fe-96e9-43c3-8328-91fed3f6799e?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af"},"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/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":367,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":367,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.290991,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":368,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/265e9624-4505-45ab-83e3-0f443b8108a1","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/265e9624-4505-45ab-83e3-0f443b8108a1","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679747,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0N30.eDIXxuiicqT3tpxzNMpSVkMd2s9bhIusADcRM0kLxuo"} 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":"e3529aa0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":368,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":3.234705,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2ba765fe-96e9-43c3-8328-91fed3f6799e","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/2ba765fe-96e9-43c3-8328-91fed3f6799e","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679747,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0N30.eDIXxuiicqT3tpxzNMpSVkMd2s9bhIusADcRM0kLxuo"} 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":"e352e8c0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F265e9624-4505-45ab-83e3-0f443b8108a1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F265e9624-4505-45ab-83e3-0f443b8108a1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:45.101555670Z"}]},"request_id":"70f37ede-e36e-4bb4-a91d-ed3cc0ad9ae6","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679747.4217167} 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":"e3529aa0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2ba765fe-96e9-43c3-8328-91fed3f6799e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2ba765fe-96e9-43c3-8328-91fed3f6799e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:45.147150151Z"}]},"request_id":"2e7d290e-7d74-48b3-91a5-f5be598579ac","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679747.4239304} 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":"e352e8c0-2406-11ef-9563-e3996e819f8c"},"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/265e9624-4505-45ab-83e3-0f443b8108a1? 200 29ms","method":"GET","requestID":"e3529aa0-2406-11ef-9563-e3996e819f8c","responseTime":29,"status":200,"url":"/devices/265e9624-4505-45ab-83e3-0f443b8108a1?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/2ba765fe-96e9-43c3-8328-91fed3f6799e? 200 29ms","method":"GET","requestID":"e352e8c0-2406-11ef-9563-e3996e819f8c","responseTime":29,"status":200,"url":"/devices/2ba765fe-96e9-43c3-8328-91fed3f6799e?"} 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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"916b4af1-2019-4380-a50a-41ddda2a6192","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679747.4383423} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F9aededc6-e4ed-4d82-9bbf-8a8a2107b0af#owner@http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F9aededc6-e4ed-4d82-9bbf-8a8a2107b0af","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"102cdaa2-b7e5-4f2a-b219-59539183a380","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679747.438782} 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":"c61466c5732112e9d5c3148f395d7b93"},"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:36466","level":"info","msg":"Received request.","req_id":369,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":369,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.492414,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/265e9624-4505-45ab-83e3-0f443b8108a1","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/265e9624-4505-45ab-83e3-0f443b8108a1","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e357f1d0-2406-11ef-9563-e3996e819f8c"},"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/265e9624-4505-45ab-83e3-0f443b8108a1/signaling 200 14ms","method":"POST","requestID":"e357f1d0-2406-11ef-9563-e3996e819f8c","responseTime":14,"status":200,"url":"/devices/265e9624-4505-45ab-83e3-0f443b8108a1/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":370,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:47Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af","user":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":370,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.255354,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:47Z"} experiment-1 | {"level":"info","message":"POST /experiments? 201 184ms","method":"POST","requestID":"c61466c5732112e9d5c3148f395d7b93","responseTime":184,"status":201,"url":"/experiments?"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/2ba765fe-96e9-43c3-8328-91fed3f6799e","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2ba765fe-96e9-43c3-8328-91fed3f6799e","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e35ad800-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} gateway-1 | {"time_local":"06/Jun/2024:13:15:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.191","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c61466c5732112e9d5c3148f395d7b93"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/2ba765fe-96e9-43c3-8328-91fed3f6799e/signaling 200 11ms","method":"POST","requestID":"e35ad800-2406-11ef-9563-e3996e819f8c","responseTime":11,"status":200,"url":"/devices/2ba765fe-96e9-43c3-8328-91fed3f6799e/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0N30.eDIXxuiicqT3tpxzNMpSVkMd2s9bhIusADcRM0kLxuo","level":"info","message":"auth send jwt"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af"},"level":"info","message":"Attempting to create peerconnections for experiment"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"beb24c1fe3fa4dcacff3fce60fb514cf","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af"},"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":"20cf4f0b-a758-4998-87b2-4fb71789f61a"},{"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":"fb2e2f98-8bf3-4b5b-ad6e-b30a45e35f7f"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"7a15254c-d1d7-4f7a-9ac9-f936750301f7"}]},"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/265e9624-4505-45ab-83e3-0f443b8108a1"},{"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/2ba765fe-96e9-43c3-8328-91fed3f6799e"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":371,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":371,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.075912,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":372,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/265e9624-4505-45ab-83e3-0f443b8108a1","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/265e9624-4505-45ab-83e3-0f443b8108a1","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679747,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0N30.eDIXxuiicqT3tpxzNMpSVkMd2s9bhIusADcRM0kLxuo"} 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":"beb24c1fe3fa4dcacff3fce60fb514cf"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":372,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.882642,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679747,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0N30.eDIXxuiicqT3tpxzNMpSVkMd2s9bhIusADcRM0kLxuo"} 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":"e35d7010-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F265e9624-4505-45ab-83e3-0f443b8108a1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F265e9624-4505-45ab-83e3-0f443b8108a1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:45.101555670Z"}]},"request_id":"088569a3-be0f-44b3-ae46-5a0b20181bc4","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679747.4816923} 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":"beb24c1fe3fa4dcacff3fce60fb514cf"},"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":"06/Jun/2024:13:15:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/265e9624-4505-45ab-83e3-0f443b8108a1? 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":"beb24c1fe3fa4dcacff3fce60fb514cf"} device-1 | {"level":"info","message":"GET /devices/265e9624-4505-45ab-83e3-0f443b8108a1? 200 17ms","method":"GET","requestID":"beb24c1fe3fa4dcacff3fce60fb514cf","responseTime":17,"status":200,"url":"/devices/265e9624-4505-45ab-83e3-0f443b8108a1?"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"1e5537cc-8218-4a94-926c-d1a363b2ceeb","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679747.4899826} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9b0e61e5-cf24-4df2-af2d-980c3b58ab71","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679747.4902346} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0N30.eDIXxuiicqT3tpxzNMpSVkMd2s9bhIusADcRM0kLxuo","level":"info","message":"auth send jwt"} 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":"e35d7010-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"bb532bceb9ba5119ed8fc27b3b1443cc","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":373,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":373,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.705933,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2ba765fe-96e9-43c3-8328-91fed3f6799e","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/2ba765fe-96e9-43c3-8328-91fed3f6799e","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679747,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0N30.eDIXxuiicqT3tpxzNMpSVkMd2s9bhIusADcRM0kLxuo"} 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":"bb532bceb9ba5119ed8fc27b3b1443cc"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2ba765fe-96e9-43c3-8328-91fed3f6799e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2ba765fe-96e9-43c3-8328-91fed3f6799e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:45.147150151Z"}]},"request_id":"ca65243c-b41e-440e-96a7-134f6dbbf764","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679747.5015557} 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":"bb532bceb9ba5119ed8fc27b3b1443cc"},"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/355729e3-9e48-4b0d-82ed-a22ef9a27799'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/355729e3-9e48-4b0d-82ed-a22ef9a27799'"} 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 36ms","method":"POST","requestID":"e35d7010-2406-11ef-9563-e3996e819f8c","responseTime":36,"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":"06/Jun/2024:13:15:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2ba765fe-96e9-43c3-8328-91fed3f6799e? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bb532bceb9ba5119ed8fc27b3b1443cc"} device-1 | {"level":"info","message":"GET /devices/2ba765fe-96e9-43c3-8328-91fed3f6799e? 200 17ms","method":"GET","requestID":"bb532bceb9ba5119ed8fc27b3b1443cc","responseTime":17,"status":200,"url":"/devices/2ba765fe-96e9-43c3-8328-91fed3f6799e?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"355729e3-9e48-4b0d-82ed-a22ef9a27799","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/355729e3-9e48-4b0d-82ed-a22ef9a27799' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"355729e3-9e48-4b0d-82ed-a22ef9a27799","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"fa6b121718dfaf0a9cf7e6461576062b","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/265e9624-4505-45ab-83e3-0f443b8108a1"},{"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/2ba765fe-96e9-43c3-8328-91fed3f6799e"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/355729e3-9e48-4b0d-82ed-a22ef9a27799"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"fa6b121718dfaf0a9cf7e6461576062b","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:47 +0000","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":"fa6b121718dfaf0a9cf7e6461576062b"} device-1 | {"data":{"peerconnection":"355729e3-9e48-4b0d-82ed-a22ef9a27799","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"355729e3-9e48-4b0d-82ed-a22ef9a27799","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/355729e3-9e48-4b0d-82ed-a22ef9a27799' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"355729e3-9e48-4b0d-82ed-a22ef9a27799","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"558533199f8196a3b75da6698f024307","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/265e9624-4505-45ab-83e3-0f443b8108a1"},{"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/2ba765fe-96e9-43c3-8328-91fed3f6799e"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/355729e3-9e48-4b0d-82ed-a22ef9a27799"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":374,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","contextual_tuples":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F355729e3-9e48-4b0d-82ed-a22ef9a27799","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"53a867a9-070a-4869-a2c9-ddbd1491ba88","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679747.6217604} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":374,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.774967,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/355729e3-9e48-4b0d-82ed-a22ef9a27799","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/355729e3-9e48-4b0d-82ed-a22ef9a27799","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":"e3734200-2406-11ef-9563-e3996e819f8c"},"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/355729e3-9e48-4b0d-82ed-a22ef9a27799 200 9ms","method":"GET","requestID":"e3734200-2406-11ef-9563-e3996e819f8c","responseTime":9,"status":200,"url":"/peerconnections/355729e3-9e48-4b0d-82ed-a22ef9a27799"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 29ms","method":"POST","requestID":"558533199f8196a3b75da6698f024307","responseTime":29,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.033","http_referrer":"","http_user_agent":"node-fetch","requestID":"558533199f8196a3b75da6698f024307"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0N30.eDIXxuiicqT3tpxzNMpSVkMd2s9bhIusADcRM0kLxuo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"2d10e8dce08b487560d04615ea1ae0fc","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":375,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":375,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.233444,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679747,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0N30.eDIXxuiicqT3tpxzNMpSVkMd2s9bhIusADcRM0kLxuo"} 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":"2d10e8dce08b487560d04615ea1ae0fc"},"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/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af"} gateway-1 | {"time_local":"06/Jun/2024:13:15:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af HTTP/1.1","status": "200","body_bytes_sent":"1288","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2d10e8dce08b487560d04615ea1ae0fc"} experiment-1 | {"level":"info","message":"GET /experiments/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af 200 17ms","method":"GET","requestID":"2d10e8dce08b487560d04615ea1ae0fc","responseTime":17,"status":200,"url":"/experiments/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0N30.eDIXxuiicqT3tpxzNMpSVkMd2s9bhIusADcRM0kLxuo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"8a1a83a30e0117645797936bab4d7e0f","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":376,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":376,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.178611,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679747,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0N30.eDIXxuiicqT3tpxzNMpSVkMd2s9bhIusADcRM0kLxuo"} 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":"8a1a83a30e0117645797936bab4d7e0f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":377,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":377,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.230631,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/355729e3-9e48-4b0d-82ed-a22ef9a27799","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:http://localhost/peerconnections/355729e3-9e48-4b0d-82ed-a22ef9a27799","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679747,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0N30.eDIXxuiicqT3tpxzNMpSVkMd2s9bhIusADcRM0kLxuo"} 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":"e388c5d0-2406-11ef-9563-e3996e819f8c"},"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/355729e3-9e48-4b0d-82ed-a22ef9a27799' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/355729e3-9e48-4b0d-82ed-a22ef9a27799' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"355729e3-9e48-4b0d-82ed-a22ef9a27799","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F355729e3-9e48-4b0d-82ed-a22ef9a27799': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F355729e3-9e48-4b0d-82ed-a22ef9a27799","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"745a93e2-cf65-4545-9f9b-9b64eca8afe2","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679747.7817175} 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"dc84f66860e8fee356903b8004415021","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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dff29e1d-a840-4a06-812d-72aea04c25d2","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679747.782601} 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"e388c5d0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} 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/265e9624-4505-45ab-83e3-0f443b8108a1"},{"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/2ba765fe-96e9-43c3-8328-91fed3f6799e"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/355729e3-9e48-4b0d-82ed-a22ef9a27799"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"9dc7e747fe7eda197c30537f2f4e7e0e","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/265e9624-4505-45ab-83e3-0f443b8108a1"},{"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/2ba765fe-96e9-43c3-8328-91fed3f6799e"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/355729e3-9e48-4b0d-82ed-a22ef9a27799"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"355729e3-9e48-4b0d-82ed-a22ef9a27799","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/355729e3-9e48-4b0d-82ed-a22ef9a27799 204 49ms","method":"DELETE","requestID":"e388c5d0-2406-11ef-9563-e3996e819f8c","responseTime":49,"status":204,"url":"/peerconnections/355729e3-9e48-4b0d-82ed-a22ef9a27799"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F9aededc6-e4ed-4d82-9bbf-8a8a2107b0af': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F9aededc6-e4ed-4d82-9bbf-8a8a2107b0af","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"1835cbd9-6b18-4b64-ad16-f6a0ad7b0142","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679747.8444948} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d16cb372-c8ce-4880-b4f4-4c63e8887561","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679747.8449018} 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":"8a1a83a30e0117645797936bab4d7e0f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":16}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af"} gateway-1 | {"time_local":"06/Jun/2024:13:15:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af 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":"8a1a83a30e0117645797936bab4d7e0f"} gateway-1 | {"time_local":"06/Jun/2024:13:15:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1639","request_time":"2.210","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"ad9781e48294abe5934071436a5a8557"} experiment-1 | {"level":"info","message":"DELETE /experiments/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af 204 173ms","method":"DELETE","requestID":"8a1a83a30e0117645797936bab4d7e0f","responseTime":173,"status":204,"url":"/experiments/9aededc6-e4ed-4d82-9bbf-8a8a2107b0af"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 130ms","method":"POST","requestID":"dc84f66860e8fee356903b8004415021","responseTime":130,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.135","http_referrer":"","http_user_agent":"node-fetch","requestID":"dc84f66860e8fee356903b8004415021"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0N30.eDIXxuiicqT3tpxzNMpSVkMd2s9bhIusADcRM0kLxuo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2e3eb590695e9f2ce33405c7a15f9b69","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 132ms","method":"POST","requestID":"9dc7e747fe7eda197c30537f2f4e7e0e","responseTime":132,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:47 +0000","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":"9dc7e747fe7eda197c30537f2f4e7e0e"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":378,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":378,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.86712,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679747,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0N30.eDIXxuiicqT3tpxzNMpSVkMd2s9bhIusADcRM0kLxuo"} 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":"2e3eb590695e9f2ce33405c7a15f9b69"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} gateway-1 | {"time_local":"06/Jun/2024:13:15:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1724","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":"e90727b952ae1b68ae207f5fde788c59"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/2ba765fe-96e9-43c3-8328-91fed3f6799e' 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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c343755-57b0-4ab8-a046-b616da948b4f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"2b4c62ed-1272-49a9-a0fa-d0a8c350e8d5","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679747.9400933} 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":"2e3eb590695e9f2ce33405c7a15f9b69"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8ceb13e2-285c-4944-80db-b6833b9597ba","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679747.944831} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/265e9624-4505-45ab-83e3-0f443b8108a1' closed"} 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":"2e3eb590695e9f2ce33405c7a15f9b69"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c343755-57b0-4ab8-a046-b616da948b4f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"00be042a-4d49-4d3f-9c93-c405d923008b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679747.9537208} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4075deb6-1f49-49ce-b48a-3cf0fcee8998","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679747.9539304} 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":"2e3eb590695e9f2ce33405c7a15f9b69"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c343755-57b0-4ab8-a046-b616da948b4f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c343755-57b0-4ab8-a046-b616da948b4f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:47.953690028Z"}]},"request_id":"5ecee60d-f3ed-421a-aaad-98c52b85aed5","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679747.958214} 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":"2e3eb590695e9f2ce33405c7a15f9b69"},"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":"06/Jun/2024:13:15: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.047","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2e3eb590695e9f2ce33405c7a15f9b69"} device-1 | {"level":"info","message":"POST /devices? 201 42ms","method":"POST","requestID":"2e3eb590695e9f2ce33405c7a15f9b69","responseTime":42,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0N30.eDIXxuiicqT3tpxzNMpSVkMd2s9bhIusADcRM0kLxuo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7726917fdd3638ac2a150b3cc164be28","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":379,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":379,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.708702,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:47Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679747,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0N30.eDIXxuiicqT3tpxzNMpSVkMd2s9bhIusADcRM0kLxuo"} 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":"7726917fdd3638ac2a150b3cc164be28"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9a942a5b-0e65-4479-afdb-57389e6dbad5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"21f445a0-314c-4e57-8539-19f8e0c638c7","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679747.9856317} 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":"7726917fdd3638ac2a150b3cc164be28"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ccf809fc-263e-4d7f-aa64-5fd9e4d25245","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679747.9900234} 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":"7726917fdd3638ac2a150b3cc164be28"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9a942a5b-0e65-4479-afdb-57389e6dbad5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"b7f2ba00-249f-49a5-8940-cf8645e93fa3","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679748.0014496} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"226d5cc9-aec8-4e1e-aa29-e8a717096944","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679748.0017207} 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":"7726917fdd3638ac2a150b3cc164be28"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9a942a5b-0e65-4479-afdb-57389e6dbad5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9a942a5b-0e65-4479-afdb-57389e6dbad5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:48.001421523Z"}]},"request_id":"b750f149-6454-49b3-a72b-04ba20c8a98d","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679748.0057411} 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":"7726917fdd3638ac2a150b3cc164be28"},"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":"06/Jun/2024:13:15:48 +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":"7726917fdd3638ac2a150b3cc164be28"} device-1 | {"level":"info","message":"POST /devices? 201 41ms","method":"POST","requestID":"7726917fdd3638ac2a150b3cc164be28","responseTime":41,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0OH0.YLl2xW3wd8E1DRTzdO2nvz5kEITbeXsAcOzEiCkmRfE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e334451ffbbe5a41af01cf1de3764008","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":380,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:48Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":380,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.304365,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:48Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9a942a5b-0e65-4479-afdb-57389e6dbad5","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/9a942a5b-0e65-4479-afdb-57389e6dbad5","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679748,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0OH0.YLl2xW3wd8E1DRTzdO2nvz5kEITbeXsAcOzEiCkmRfE"} 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":"e334451ffbbe5a41af01cf1de3764008"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9a942a5b-0e65-4479-afdb-57389e6dbad5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9a942a5b-0e65-4479-afdb-57389e6dbad5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:48.001421523Z"}]},"request_id":"061f2cf6-8e48-42fc-af03-273ae31ed282","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679748.4832473} 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":"e334451ffbbe5a41af01cf1de3764008"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9862b903-ca13-47fd-a5b4-f21c42d11177","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679748.4902253} 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":"e334451ffbbe5a41af01cf1de3764008"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9a942a5b-0e65-4479-afdb-57389e6dbad5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9a942a5b-0e65-4479-afdb-57389e6dbad5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:48.001421523Z"}]},"request_id":"5df685e9-5d0e-475d-b15b-e20b2d548195","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679748.503319} 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":"e334451ffbbe5a41af01cf1de3764008"},"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":"06/Jun/2024:13:15:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/9a942a5b-0e65-4479-afdb-57389e6dbad5 HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.043","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"e334451ffbbe5a41af01cf1de3764008"} device-1 | {"level":"info","message":"PATCH /devices/9a942a5b-0e65-4479-afdb-57389e6dbad5 200 37ms","method":"PATCH","requestID":"e334451ffbbe5a41af01cf1de3764008","responseTime":37,"status":200,"url":"/devices/9a942a5b-0e65-4479-afdb-57389e6dbad5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0OH0.YLl2xW3wd8E1DRTzdO2nvz5kEITbeXsAcOzEiCkmRfE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"63f59d129025840315043e324027c8b6","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":381,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:48Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":381,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.551354,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:48Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9a942a5b-0e65-4479-afdb-57389e6dbad5","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/9a942a5b-0e65-4479-afdb-57389e6dbad5","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679748,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc0OH0.YLl2xW3wd8E1DRTzdO2nvz5kEITbeXsAcOzEiCkmRfE"} 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":"63f59d129025840315043e324027c8b6"},"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":"06/Jun/2024:13:15:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/9a942a5b-0e65-4479-afdb-57389e6dbad5/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":"63f59d129025840315043e324027c8b6"} device-1 | {"level":"info","message":"POST /devices/9a942a5b-0e65-4479-afdb-57389e6dbad5/websocket 200 16ms","method":"POST","requestID":"63f59d129025840315043e324027c8b6","responseTime":16,"status":200,"url":"/devices/9a942a5b-0e65-4479-afdb-57389e6dbad5/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/9a942a5b-0e65-4479-afdb-57389e6dbad5' 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"bdf23c91de99fd77504c95053d948104","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"06/Jun/2024:13:15:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/1c343755-57b0-4ab8-a046-b616da948b4f/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":"bdf23c91de99fd77504c95053d948104"} device-1 | {"level":"info","message":"OPTIONS /devices/1c343755-57b0-4ab8-a046-b616da948b4f/websocket 200 2ms","method":"OPTIONS","requestID":"bdf23c91de99fd77504c95053d948104","responseTime":2,"status":200,"url":"/devices/1c343755-57b0-4ab8-a046-b616da948b4f/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1MH0.8Rc8zTGWqOW6HeEjxPsw41l1u4j1LgBpBJOXsHXd6VM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3b123b21d3a888ac2a55fbb00b130357","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":382,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:50Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":382,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.281939,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:50Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1c343755-57b0-4ab8-a046-b616da948b4f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/1c343755-57b0-4ab8-a046-b616da948b4f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679750,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1MH0.8Rc8zTGWqOW6HeEjxPsw41l1u4j1LgBpBJOXsHXd6VM"} 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":"3b123b21d3a888ac2a55fbb00b130357"},"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":"06/Jun/2024:13:15:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/1c343755-57b0-4ab8-a046-b616da948b4f/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":"3b123b21d3a888ac2a55fbb00b130357"} device-1 | {"level":"info","message":"POST /devices/1c343755-57b0-4ab8-a046-b616da948b4f/websocket 200 22ms","method":"POST","requestID":"3b123b21d3a888ac2a55fbb00b130357","responseTime":22,"status":200,"url":"/devices/1c343755-57b0-4ab8-a046-b616da948b4f/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/1c343755-57b0-4ab8-a046-b616da948b4f' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1MH0.8Rc8zTGWqOW6HeEjxPsw41l1u4j1LgBpBJOXsHXd6VM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"98c8f28ace4ece740c06e8b03529a41d","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":383,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:50Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":383,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.218928,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1c343755-57b0-4ab8-a046-b616da948b4f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/1c343755-57b0-4ab8-a046-b616da948b4f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679750,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1MH0.8Rc8zTGWqOW6HeEjxPsw41l1u4j1LgBpBJOXsHXd6VM"} 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":"98c8f28ace4ece740c06e8b03529a41d"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c343755-57b0-4ab8-a046-b616da948b4f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c343755-57b0-4ab8-a046-b616da948b4f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:47.953690028Z"}]},"request_id":"a00866c9-ca10-4cbe-9a6c-3b5453973140","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679750.0832984} 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":"98c8f28ace4ece740c06e8b03529a41d"},"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":"06/Jun/2024:13:15:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1c343755-57b0-4ab8-a046-b616da948b4f? 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":"98c8f28ace4ece740c06e8b03529a41d"} device-1 | {"level":"info","message":"GET /devices/1c343755-57b0-4ab8-a046-b616da948b4f? 200 18ms","method":"GET","requestID":"98c8f28ace4ece740c06e8b03529a41d","responseTime":18,"status":200,"url":"/devices/1c343755-57b0-4ab8-a046-b616da948b4f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1MH0.8Rc8zTGWqOW6HeEjxPsw41l1u4j1LgBpBJOXsHXd6VM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5fa5eec2f6589d522796ba8ec595fa68","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":384,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:50Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":384,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.385252,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9a942a5b-0e65-4479-afdb-57389e6dbad5","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/9a942a5b-0e65-4479-afdb-57389e6dbad5","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679750,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1MH0.8Rc8zTGWqOW6HeEjxPsw41l1u4j1LgBpBJOXsHXd6VM"} 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":"5fa5eec2f6589d522796ba8ec595fa68"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9a942a5b-0e65-4479-afdb-57389e6dbad5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9a942a5b-0e65-4479-afdb-57389e6dbad5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:48.001421523Z"}]},"request_id":"c1124317-9e5d-4d0e-ad61-5c92c7bcf55f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679750.1085982} 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":"5fa5eec2f6589d522796ba8ec595fa68"},"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":"06/Jun/2024:13:15:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9a942a5b-0e65-4479-afdb-57389e6dbad5? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5fa5eec2f6589d522796ba8ec595fa68"} device-1 | {"level":"info","message":"GET /devices/9a942a5b-0e65-4479-afdb-57389e6dbad5? 200 17ms","method":"GET","requestID":"5fa5eec2f6589d522796ba8ec595fa68","responseTime":17,"status":200,"url":"/devices/9a942a5b-0e65-4479-afdb-57389e6dbad5?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1MH0.8Rc8zTGWqOW6HeEjxPsw41l1u4j1LgBpBJOXsHXd6VM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"fef4492d07a5aef07e0f63a17a673e72","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:36466","level":"info","msg":"Received request.","req_id":385,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:50Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":385,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.174406,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:50Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679750,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1MH0.8Rc8zTGWqOW6HeEjxPsw41l1u4j1LgBpBJOXsHXd6VM"} 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":"fef4492d07a5aef07e0f63a17a673e72"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4d6ee74b-59fc-4d18-86da-f315b447509a"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4d6ee74b-59fc-4d18-86da-f315b447509a"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4d6ee74b-59fc-4d18-86da-f315b447509a"},"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:36466","level":"info","msg":"Received request.","req_id":386,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:50Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":386,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.841634,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:50Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":387,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1c343755-57b0-4ab8-a046-b616da948b4f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/1c343755-57b0-4ab8-a046-b616da948b4f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679750,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1MH0.8Rc8zTGWqOW6HeEjxPsw41l1u4j1LgBpBJOXsHXd6VM"} 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":"e4f8f7a0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":387,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.210197,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9a942a5b-0e65-4479-afdb-57389e6dbad5","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/9a942a5b-0e65-4479-afdb-57389e6dbad5","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679750,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1MH0.8Rc8zTGWqOW6HeEjxPsw41l1u4j1LgBpBJOXsHXd6VM"} 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":"e4f945c0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c343755-57b0-4ab8-a046-b616da948b4f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c343755-57b0-4ab8-a046-b616da948b4f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:47.953690028Z"}]},"request_id":"5746a029-5baf-42eb-ad4a-1cd9b6873963","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679750.1830332} 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":"e4f8f7a0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9a942a5b-0e65-4479-afdb-57389e6dbad5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9a942a5b-0e65-4479-afdb-57389e6dbad5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:48.001421523Z"}]},"request_id":"fc9d9548-af8a-440c-b9a0-69e2f7b7b968","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679750.1846945} 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":"e4f945c0-2406-11ef-9563-e3996e819f8c"},"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/1c343755-57b0-4ab8-a046-b616da948b4f? 200 22ms","method":"GET","requestID":"e4f8f7a0-2406-11ef-9563-e3996e819f8c","responseTime":22,"status":200,"url":"/devices/1c343755-57b0-4ab8-a046-b616da948b4f?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/9a942a5b-0e65-4479-afdb-57389e6dbad5? 200 21ms","method":"GET","requestID":"e4f945c0-2406-11ef-9563-e3996e819f8c","responseTime":21,"status":200,"url":"/devices/9a942a5b-0e65-4479-afdb-57389e6dbad5?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4d6ee74b-59fc-4d18-86da-f315b447509a"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4d6ee74b-59fc-4d18-86da-f315b447509a"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4d6ee74b-59fc-4d18-86da-f315b447509a"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4d6ee74b-59fc-4d18-86da-f315b447509a"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4d6ee74b-59fc-4d18-86da-f315b447509a"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4d6ee74b-59fc-4d18-86da-f315b447509a"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4d6ee74b-59fc-4d18-86da-f315b447509a"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4d6ee74b-59fc-4d18-86da-f315b447509a"},"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/4d6ee74b-59fc-4d18-86da-f315b447509a"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":388,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:50Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":388,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.232386,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:50Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":389,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:50Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":389,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.71312,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1c343755-57b0-4ab8-a046-b616da948b4f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/1c343755-57b0-4ab8-a046-b616da948b4f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679750,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1MH0.8Rc8zTGWqOW6HeEjxPsw41l1u4j1LgBpBJOXsHXd6VM"} 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":"e5049060-2406-11ef-9563-e3996e819f8c"},"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/9a942a5b-0e65-4479-afdb-57389e6dbad5","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/9a942a5b-0e65-4479-afdb-57389e6dbad5","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679750,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1MH0.8Rc8zTGWqOW6HeEjxPsw41l1u4j1LgBpBJOXsHXd6VM"} 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":"e5050590-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c343755-57b0-4ab8-a046-b616da948b4f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c343755-57b0-4ab8-a046-b616da948b4f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:47.953690028Z"}]},"request_id":"68f98979-8e33-44ea-aa81-6bd1e3deae80","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679750.2603984} 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":"e5049060-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9a942a5b-0e65-4479-afdb-57389e6dbad5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9a942a5b-0e65-4479-afdb-57389e6dbad5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:48.001421523Z"}]},"request_id":"99e18d73-984b-4056-a44b-df70c8a4065c","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679750.2616751} 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":"e5050590-2406-11ef-9563-e3996e819f8c"},"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/1c343755-57b0-4ab8-a046-b616da948b4f? 200 21ms","method":"GET","requestID":"e5049060-2406-11ef-9563-e3996e819f8c","responseTime":21,"status":200,"url":"/devices/1c343755-57b0-4ab8-a046-b616da948b4f?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/9a942a5b-0e65-4479-afdb-57389e6dbad5? 200 22ms","method":"GET","requestID":"e5050590-2406-11ef-9563-e3996e819f8c","responseTime":22,"status":200,"url":"/devices/9a942a5b-0e65-4479-afdb-57389e6dbad5?"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F4d6ee74b-59fc-4d18-86da-f315b447509a#owner@http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F4d6ee74b-59fc-4d18-86da-f315b447509a","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"ece801a2-4f80-4b28-a5a6-921a4454883d","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679750.274179} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e090ff7a-7688-40bc-9de7-aba7f258cafc","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679750.274525} 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":"fef4492d07a5aef07e0f63a17a673e72"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":23}} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":390,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:50Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":390,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.350578,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:50Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/1c343755-57b0-4ab8-a046-b616da948b4f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1c343755-57b0-4ab8-a046-b616da948b4f","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e508fd30-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/4d6ee74b-59fc-4d18-86da-f315b447509a","user":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} device-1 | {"level":"info","message":"POST /devices/1c343755-57b0-4ab8-a046-b616da948b4f/signaling 200 12ms","method":"POST","requestID":"e508fd30-2406-11ef-9563-e3996e819f8c","responseTime":12,"status":200,"url":"/devices/1c343755-57b0-4ab8-a046-b616da948b4f/signaling"} gateway-1 | {"time_local":"06/Jun/2024:13:15:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.171","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fef4492d07a5aef07e0f63a17a673e72"} experiment-1 | {"level":"info","message":"POST /experiments? 201 166ms","method":"POST","requestID":"fef4492d07a5aef07e0f63a17a673e72","responseTime":166,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1MH0.8Rc8zTGWqOW6HeEjxPsw41l1u4j1LgBpBJOXsHXd6VM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5de36142bb5899a9e4310b868b7f5523","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":391,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:50Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":391,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.35994,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:50Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":392,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:50Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/9a942a5b-0e65-4479-afdb-57389e6dbad5","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9a942a5b-0e65-4479-afdb-57389e6dbad5","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e50b9540-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":392,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.914058,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1c343755-57b0-4ab8-a046-b616da948b4f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/1c343755-57b0-4ab8-a046-b616da948b4f","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679750,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1MH0.8Rc8zTGWqOW6HeEjxPsw41l1u4j1LgBpBJOXsHXd6VM"} 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":"5de36142bb5899a9e4310b868b7f5523"},"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/9a942a5b-0e65-4479-afdb-57389e6dbad5/signaling 200 15ms","method":"POST","requestID":"e50b9540-2406-11ef-9563-e3996e819f8c","responseTime":15,"status":200,"url":"/devices/9a942a5b-0e65-4479-afdb-57389e6dbad5/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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c343755-57b0-4ab8-a046-b616da948b4f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c343755-57b0-4ab8-a046-b616da948b4f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:47.953690028Z"}]},"request_id":"09cac100-3023-4060-8544-7f0864da15da","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679750.3084042} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4d6ee74b-59fc-4d18-86da-f315b447509a"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4d6ee74b-59fc-4d18-86da-f315b447509a"},"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":"e30b7b83-c94b-4655-adbe-6c99e7fb2902"},{"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":"cc30a00e-a424-44e4-b244-581018f12f8a"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"d0df0cd0-123d-4a8a-8655-43e8113c1cab"}]},"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/9a942a5b-0e65-4479-afdb-57389e6dbad5"},{"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/1c343755-57b0-4ab8-a046-b616da948b4f"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} 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":"5de36142bb5899a9e4310b868b7f5523"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":393,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:50Z"} gateway-1 | {"time_local":"06/Jun/2024:13:15:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1c343755-57b0-4ab8-a046-b616da948b4f? 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":"5de36142bb5899a9e4310b868b7f5523"} device-1 | {"level":"info","message":"GET /devices/1c343755-57b0-4ab8-a046-b616da948b4f? 200 21ms","method":"GET","requestID":"5de36142bb5899a9e4310b868b7f5523","responseTime":21,"status":200,"url":"/devices/1c343755-57b0-4ab8-a046-b616da948b4f?"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":393,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.277991,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:50Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679750,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1MH0.8Rc8zTGWqOW6HeEjxPsw41l1u4j1LgBpBJOXsHXd6VM"} 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":"e50ea280-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1MH0.8Rc8zTGWqOW6HeEjxPsw41l1u4j1LgBpBJOXsHXd6VM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"f85e5b17be29f98fd94361c37f74368b","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":394,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:50Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":394,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.510528,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9a942a5b-0e65-4479-afdb-57389e6dbad5","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/9a942a5b-0e65-4479-afdb-57389e6dbad5","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679750,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1MH0.8Rc8zTGWqOW6HeEjxPsw41l1u4j1LgBpBJOXsHXd6VM"} 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":"f85e5b17be29f98fd94361c37f74368b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"3ab6162c-1858-4e40-bcd6-cc3729d27928","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679750.3385034} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"75437feb-3c32-4741-9b5b-4fbbc34ed5d2","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679750.3388069} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9a942a5b-0e65-4479-afdb-57389e6dbad5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9a942a5b-0e65-4479-afdb-57389e6dbad5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:48.001421523Z"}]},"request_id":"730865ca-5b28-41ea-98ba-027e3ae6a3fb","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679750.3403187} 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":"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":"e50ea280-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} 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":"f85e5b17be29f98fd94361c37f74368b"},"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":"06/Jun/2024:13:15:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9a942a5b-0e65-4479-afdb-57389e6dbad5? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f85e5b17be29f98fd94361c37f74368b"} device-1 | {"level":"info","message":"GET /devices/9a942a5b-0e65-4479-afdb-57389e6dbad5? 200 27ms","method":"GET","requestID":"f85e5b17be29f98fd94361c37f74368b","responseTime":27,"status":200,"url":"/devices/9a942a5b-0e65-4479-afdb-57389e6dbad5?"} 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/1e15d4e8-5080-440b-9e9c-4acc66ae7c6f'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/1e15d4e8-5080-440b-9e9c-4acc66ae7c6f'"} 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":"e50ea280-2406-11ef-9563-e3996e819f8c","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"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4d6ee74b-59fc-4d18-86da-f315b447509a"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"data":{"peerconnection":"1e15d4e8-5080-440b-9e9c-4acc66ae7c6f","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/1e15d4e8-5080-440b-9e9c-4acc66ae7c6f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"1e15d4e8-5080-440b-9e9c-4acc66ae7c6f","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"6a800383eb2e0144ed535cdea12caa03","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":"connecting","url":"http://localhost/devices/9a942a5b-0e65-4479-afdb-57389e6dbad5"},{"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/1c343755-57b0-4ab8-a046-b616da948b4f"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/1e15d4e8-5080-440b-9e9c-4acc66ae7c6f"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 10ms","method":"POST","requestID":"6a800383eb2e0144ed535cdea12caa03","responseTime":10,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch","requestID":"6a800383eb2e0144ed535cdea12caa03"} device-1 | {"data":{"peerconnection":"1e15d4e8-5080-440b-9e9c-4acc66ae7c6f","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"1e15d4e8-5080-440b-9e9c-4acc66ae7c6f","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/1e15d4e8-5080-440b-9e9c-4acc66ae7c6f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"1e15d4e8-5080-440b-9e9c-4acc66ae7c6f","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"215760f15ac77a12a4b6f05bbcf58ad4","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/9a942a5b-0e65-4479-afdb-57389e6dbad5"},{"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/1c343755-57b0-4ab8-a046-b616da948b4f"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/1e15d4e8-5080-440b-9e9c-4acc66ae7c6f"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":395,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:51Z"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","contextual_tuples":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F1e15d4e8-5080-440b-9e9c-4acc66ae7c6f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"079a1a21-cdd0-4731-9417-c7e16a63d394","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679751.4750147} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":395,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":5.537924,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/1e15d4e8-5080-440b-9e9c-4acc66ae7c6f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/1e15d4e8-5080-440b-9e9c-4acc66ae7c6f","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":"e5bedfb0-2406-11ef-9563-e3996e819f8c"},"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/1e15d4e8-5080-440b-9e9c-4acc66ae7c6f 200 15ms","method":"GET","requestID":"e5bedfb0-2406-11ef-9563-e3996e819f8c","responseTime":15,"status":200,"url":"/peerconnections/1e15d4e8-5080-440b-9e9c-4acc66ae7c6f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 48ms","method":"POST","requestID":"215760f15ac77a12a4b6f05bbcf58ad4","responseTime":48,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.051","http_referrer":"","http_user_agent":"node-fetch","requestID":"215760f15ac77a12a4b6f05bbcf58ad4"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1MX0.k1YgCfhQJdVe2blARQ9CWvuZlxGsrpkLoIl9bpIcHf8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"1f288b700b4a4fcb4ca7804c0ad0fc3a","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/4d6ee74b-59fc-4d18-86da-f315b447509a"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":396,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:51Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":396,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.165748,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/4d6ee74b-59fc-4d18-86da-f315b447509a","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/4d6ee74b-59fc-4d18-86da-f315b447509a","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679751,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1MX0.k1YgCfhQJdVe2blARQ9CWvuZlxGsrpkLoIl9bpIcHf8"} 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":"1f288b700b4a4fcb4ca7804c0ad0fc3a"},"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/4d6ee74b-59fc-4d18-86da-f315b447509a"} gateway-1 | {"time_local":"06/Jun/2024:13:15:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/4d6ee74b-59fc-4d18-86da-f315b447509a HTTP/1.1","status": "200","body_bytes_sent":"1288","request_time":"0.024","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1f288b700b4a4fcb4ca7804c0ad0fc3a"} experiment-1 | {"level":"info","message":"GET /experiments/4d6ee74b-59fc-4d18-86da-f315b447509a 200 18ms","method":"GET","requestID":"1f288b700b4a4fcb4ca7804c0ad0fc3a","responseTime":18,"status":200,"url":"/experiments/4d6ee74b-59fc-4d18-86da-f315b447509a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1MX0.k1YgCfhQJdVe2blARQ9CWvuZlxGsrpkLoIl9bpIcHf8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"b9276b35237ea9cf4ea8bdf2667b07cc","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/4d6ee74b-59fc-4d18-86da-f315b447509a"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":397,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:51Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":397,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.67398,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:51Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/4d6ee74b-59fc-4d18-86da-f315b447509a","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/4d6ee74b-59fc-4d18-86da-f315b447509a","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679751,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1MX0.k1YgCfhQJdVe2blARQ9CWvuZlxGsrpkLoIl9bpIcHf8"} 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":"b9276b35237ea9cf4ea8bdf2667b07cc"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4d6ee74b-59fc-4d18-86da-f315b447509a"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":398,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:51Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":398,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.215028,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:51Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/1e15d4e8-5080-440b-9e9c-4acc66ae7c6f","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:http://localhost/peerconnections/1e15d4e8-5080-440b-9e9c-4acc66ae7c6f","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679751,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1MX0.k1YgCfhQJdVe2blARQ9CWvuZlxGsrpkLoIl9bpIcHf8"} 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":"e5d267b0-2406-11ef-9563-e3996e819f8c"},"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/1e15d4e8-5080-440b-9e9c-4acc66ae7c6f' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/1e15d4e8-5080-440b-9e9c-4acc66ae7c6f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"1e15d4e8-5080-440b-9e9c-4acc66ae7c6f","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"dd4ba0261ae1afb9e45351a3ba174668","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"1699cf98f912f00d63df33dbf9d94e36","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":"closed","url":"http://localhost/devices/9a942a5b-0e65-4479-afdb-57389e6dbad5"},{"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/1c343755-57b0-4ab8-a046-b616da948b4f"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/1e15d4e8-5080-440b-9e9c-4acc66ae7c6f"}}},"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":"closed","url":"http://localhost/devices/9a942a5b-0e65-4479-afdb-57389e6dbad5"},{"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/1c343755-57b0-4ab8-a046-b616da948b4f"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/1e15d4e8-5080-440b-9e9c-4acc66ae7c6f"}}},"level":"info","message":"received a callback"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F1e15d4e8-5080-440b-9e9c-4acc66ae7c6f': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F1e15d4e8-5080-440b-9e9c-4acc66ae7c6f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"b86392a6-8f31-40e0-9cd3-0549098eed59","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679751.6275482} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"23be3e72-c233-4734-a68f-52f217fc6071","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679751.6291864} 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":"e5d267b0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":19}} device-1 | {"data":{"peerconnection":"1e15d4e8-5080-440b-9e9c-4acc66ae7c6f","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/1e15d4e8-5080-440b-9e9c-4acc66ae7c6f 204 49ms","method":"DELETE","requestID":"e5d267b0-2406-11ef-9563-e3996e819f8c","responseTime":49,"status":204,"url":"/peerconnections/1e15d4e8-5080-440b-9e9c-4acc66ae7c6f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4d6ee74b-59fc-4d18-86da-f315b447509a"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F4d6ee74b-59fc-4d18-86da-f315b447509a': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F4d6ee74b-59fc-4d18-86da-f315b447509a","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"fd1e034f-38e6-4ce3-aa50-468f83cc7bba","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679751.6824133} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a765ba36-3ac1-41c0-8308-975b06bb6d8c","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679751.6827297} 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":"b9276b35237ea9cf4ea8bdf2667b07cc"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/4d6ee74b-59fc-4d18-86da-f315b447509a"} gateway-1 | {"time_local":"06/Jun/2024:13:15:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/4d6ee74b-59fc-4d18-86da-f315b447509a HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.178","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b9276b35237ea9cf4ea8bdf2667b07cc"} gateway-1 | {"time_local":"06/Jun/2024:13:15:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1958","request_time":"3.219","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"e020b1b53ec37d0fb21877fdb586a06a"} experiment-1 | {"level":"info","message":"DELETE /experiments/4d6ee74b-59fc-4d18-86da-f315b447509a 204 174ms","method":"DELETE","requestID":"b9276b35237ea9cf4ea8bdf2667b07cc","responseTime":174,"status":204,"url":"/experiments/4d6ee74b-59fc-4d18-86da-f315b447509a"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 131ms","method":"POST","requestID":"dd4ba0261ae1afb9e45351a3ba174668","responseTime":131,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.135","http_referrer":"","http_user_agent":"node-fetch","requestID":"dd4ba0261ae1afb9e45351a3ba174668"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 130ms","method":"POST","requestID":"1699cf98f912f00d63df33dbf9d94e36","responseTime":130,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.136","http_referrer":"","http_user_agent":"node-fetch","requestID":"1699cf98f912f00d63df33dbf9d94e36"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1MX0.k1YgCfhQJdVe2blARQ9CWvuZlxGsrpkLoIl9bpIcHf8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"7bd70a5a1ccb110546a181035cfd0c3b","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"06/Jun/2024:13:15:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1719","request_time":"1.711","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"7e7435e58e710424b2f0e44f41fc14e1"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":399,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:51Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":399,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.956994,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:51Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679751,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1MX0.k1YgCfhQJdVe2blARQ9CWvuZlxGsrpkLoIl9bpIcHf8"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","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":"7bd70a5a1ccb110546a181035cfd0c3b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/9a942a5b-0e65-4479-afdb-57389e6dbad5' 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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8cc5b522-e270-45da-b850-374563378bc7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"38b639bb-55fb-4619-ae3c-c1640b882dfd","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679751.782145} 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":"7bd70a5a1ccb110546a181035cfd0c3b"},"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/1c343755-57b0-4ab8-a046-b616da948b4f' 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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"78b361c5-dd43-4c5b-bb05-a0e18e61a8d8","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679751.787654} 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":"7bd70a5a1ccb110546a181035cfd0c3b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8cc5b522-e270-45da-b850-374563378bc7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"2607c799-5135-42a5-8492-2307284b796c","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679751.7959054} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b4ada4e4-5ba5-42c0-83ef-2adc9e4156ca","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679751.7961943} 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":"7bd70a5a1ccb110546a181035cfd0c3b"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8cc5b522-e270-45da-b850-374563378bc7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8cc5b522-e270-45da-b850-374563378bc7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:51.795876251Z"}]},"request_id":"ca91a6b0-82cb-4c3a-a93e-9d37265c99b8","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679751.8008235} 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":"7bd70a5a1ccb110546a181035cfd0c3b"},"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":"06/Jun/2024:13:15:51 +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":"7bd70a5a1ccb110546a181035cfd0c3b"} device-1 | {"level":"info","message":"POST /devices? 201 46ms","method":"POST","requestID":"7bd70a5a1ccb110546a181035cfd0c3b","responseTime":46,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1MX0.k1YgCfhQJdVe2blARQ9CWvuZlxGsrpkLoIl9bpIcHf8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8ccbdeba85f63d71e742a0da1dee8f99","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":400,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:51Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":400,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.766943,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:51Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679751,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1MX0.k1YgCfhQJdVe2blARQ9CWvuZlxGsrpkLoIl9bpIcHf8"} 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":"8ccbdeba85f63d71e742a0da1dee8f99"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee7296b3-2714-42a4-a279-13a525aef1b8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"fb38ce95-b74c-46e9-9598-a51175b4fab6","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679751.8290446} 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":"8ccbdeba85f63d71e742a0da1dee8f99"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d8a010e7-aa22-4738-9512-d4da42c52f16","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679751.834149} 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":"8ccbdeba85f63d71e742a0da1dee8f99"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee7296b3-2714-42a4-a279-13a525aef1b8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"7d13dfaf-5262-4566-9864-50ebd405898e","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679751.8450406} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4faae891-1ca6-4234-a610-47b811395087","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679751.8452313} 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":"8ccbdeba85f63d71e742a0da1dee8f99"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee7296b3-2714-42a4-a279-13a525aef1b8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee7296b3-2714-42a4-a279-13a525aef1b8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:51.845014333Z"}]},"request_id":"c5470bdd-d475-4eca-a560-2a078eb791b5","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679751.8491194} 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":"8ccbdeba85f63d71e742a0da1dee8f99"},"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":"06/Jun/2024:13:15:51 +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":"8ccbdeba85f63d71e742a0da1dee8f99"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"8ccbdeba85f63d71e742a0da1dee8f99","responseTime":43,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1Mn0.XKeR45O3LwyQkW-c9z_Q382WAjk1uxz5r5mYlCGpN-w","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"aecdcfd73b2a7dd2bf75ae450005a1c6","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":401,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:52Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":401,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.367749,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:52Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/8cc5b522-e270-45da-b850-374563378bc7","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/8cc5b522-e270-45da-b850-374563378bc7","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679752,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1Mn0.XKeR45O3LwyQkW-c9z_Q382WAjk1uxz5r5mYlCGpN-w"} 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":"aecdcfd73b2a7dd2bf75ae450005a1c6"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8cc5b522-e270-45da-b850-374563378bc7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8cc5b522-e270-45da-b850-374563378bc7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:51.795876251Z"}]},"request_id":"8833b7f7-f771-497d-8d46-001a668db6f8","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679752.330803} 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":"aecdcfd73b2a7dd2bf75ae450005a1c6"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3a9ecce6-180c-4f47-94fe-e7c28afac2f1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679752.3364894} 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":"aecdcfd73b2a7dd2bf75ae450005a1c6"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8cc5b522-e270-45da-b850-374563378bc7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8cc5b522-e270-45da-b850-374563378bc7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:51.795876251Z"}]},"request_id":"5be581fd-715c-4fa1-8a2d-8f1575d31668","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679752.3491175} 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":"aecdcfd73b2a7dd2bf75ae450005a1c6"},"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":"06/Jun/2024:13:15:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/8cc5b522-e270-45da-b850-374563378bc7 HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.039","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"aecdcfd73b2a7dd2bf75ae450005a1c6"} device-1 | {"level":"info","message":"PATCH /devices/8cc5b522-e270-45da-b850-374563378bc7 200 35ms","method":"PATCH","requestID":"aecdcfd73b2a7dd2bf75ae450005a1c6","responseTime":35,"status":200,"url":"/devices/8cc5b522-e270-45da-b850-374563378bc7"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1Mn0.XKeR45O3LwyQkW-c9z_Q382WAjk1uxz5r5mYlCGpN-w","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"101476b385f4f7a1048810c356c2445b","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":402,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:52Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":402,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.725337,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:52Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/8cc5b522-e270-45da-b850-374563378bc7","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/8cc5b522-e270-45da-b850-374563378bc7","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679752,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1Mn0.XKeR45O3LwyQkW-c9z_Q382WAjk1uxz5r5mYlCGpN-w"} 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":"101476b385f4f7a1048810c356c2445b"},"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":"06/Jun/2024:13:15:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/8cc5b522-e270-45da-b850-374563378bc7/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":"101476b385f4f7a1048810c356c2445b"} device-1 | {"level":"info","message":"POST /devices/8cc5b522-e270-45da-b850-374563378bc7/websocket 200 18ms","method":"POST","requestID":"101476b385f4f7a1048810c356c2445b","responseTime":18,"status":200,"url":"/devices/8cc5b522-e270-45da-b850-374563378bc7/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/8cc5b522-e270-45da-b850-374563378bc7' 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e19b6c22cbd1eb1ca964d541b90cd354","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"06/Jun/2024:13:15:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/ee7296b3-2714-42a4-a279-13a525aef1b8/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":"e19b6c22cbd1eb1ca964d541b90cd354"} device-1 | {"level":"info","message":"OPTIONS /devices/ee7296b3-2714-42a4-a279-13a525aef1b8/websocket 200 1ms","method":"OPTIONS","requestID":"e19b6c22cbd1eb1ca964d541b90cd354","responseTime":1,"status":200,"url":"/devices/ee7296b3-2714-42a4-a279-13a525aef1b8/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1M30.3LF_fIwQpSnTQ9adzjw5QAu-MbeUNT_u3cYKC5-8tv8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"a2873ddf392adaaa1f8bccbe7f867c32","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":403,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:53Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":403,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.188894,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:53Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee7296b3-2714-42a4-a279-13a525aef1b8","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/ee7296b3-2714-42a4-a279-13a525aef1b8","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679753,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1M30.3LF_fIwQpSnTQ9adzjw5QAu-MbeUNT_u3cYKC5-8tv8"} 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":"a2873ddf392adaaa1f8bccbe7f867c32"},"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":"06/Jun/2024:13:15:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/ee7296b3-2714-42a4-a279-13a525aef1b8/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":"a2873ddf392adaaa1f8bccbe7f867c32"} device-1 | {"level":"info","message":"POST /devices/ee7296b3-2714-42a4-a279-13a525aef1b8/websocket 200 21ms","method":"POST","requestID":"a2873ddf392adaaa1f8bccbe7f867c32","responseTime":21,"status":200,"url":"/devices/ee7296b3-2714-42a4-a279-13a525aef1b8/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/ee7296b3-2714-42a4-a279-13a525aef1b8' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1M30.3LF_fIwQpSnTQ9adzjw5QAu-MbeUNT_u3cYKC5-8tv8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e01cce8ab6040f0e0961484d01d76dcd","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":404,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:53Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":404,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.105168,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:53Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8cc5b522-e270-45da-b850-374563378bc7","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/8cc5b522-e270-45da-b850-374563378bc7","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679753,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1M30.3LF_fIwQpSnTQ9adzjw5QAu-MbeUNT_u3cYKC5-8tv8"} 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":"e01cce8ab6040f0e0961484d01d76dcd"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8cc5b522-e270-45da-b850-374563378bc7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8cc5b522-e270-45da-b850-374563378bc7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:51.795876251Z"}]},"request_id":"77abc96f-a02f-471d-b5c6-c47692cda405","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679753.884947} 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":"e01cce8ab6040f0e0961484d01d76dcd"},"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":"06/Jun/2024:13:15:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8cc5b522-e270-45da-b850-374563378bc7? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e01cce8ab6040f0e0961484d01d76dcd"} device-1 | {"level":"info","message":"GET /devices/8cc5b522-e270-45da-b850-374563378bc7? 200 15ms","method":"GET","requestID":"e01cce8ab6040f0e0961484d01d76dcd","responseTime":15,"status":200,"url":"/devices/8cc5b522-e270-45da-b850-374563378bc7?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1M30.3LF_fIwQpSnTQ9adzjw5QAu-MbeUNT_u3cYKC5-8tv8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d5e7c6846b7c00f628bb27dcea4b6bd0","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":405,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:53Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":405,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.104555,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:53Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee7296b3-2714-42a4-a279-13a525aef1b8","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/ee7296b3-2714-42a4-a279-13a525aef1b8","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679753,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1M30.3LF_fIwQpSnTQ9adzjw5QAu-MbeUNT_u3cYKC5-8tv8"} 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":"d5e7c6846b7c00f628bb27dcea4b6bd0"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee7296b3-2714-42a4-a279-13a525aef1b8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee7296b3-2714-42a4-a279-13a525aef1b8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:51.845014333Z"}]},"request_id":"b4636983-84b1-4faf-ba4b-eadea679ef61","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679753.9082217} 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":"d5e7c6846b7c00f628bb27dcea4b6bd0"},"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":"06/Jun/2024:13:15:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ee7296b3-2714-42a4-a279-13a525aef1b8? 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":"d5e7c6846b7c00f628bb27dcea4b6bd0"} device-1 | {"level":"info","message":"GET /devices/ee7296b3-2714-42a4-a279-13a525aef1b8? 200 13ms","method":"GET","requestID":"d5e7c6846b7c00f628bb27dcea4b6bd0","responseTime":13,"status":200,"url":"/devices/ee7296b3-2714-42a4-a279-13a525aef1b8?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1M30.3LF_fIwQpSnTQ9adzjw5QAu-MbeUNT_u3cYKC5-8tv8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"141d58a0cf584a0b815ef30e7bfbc6aa","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:36466","level":"info","msg":"Received request.","req_id":406,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:53Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":406,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.20639,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:53Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679753,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1M30.3LF_fIwQpSnTQ9adzjw5QAu-MbeUNT_u3cYKC5-8tv8"} 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":"141d58a0cf584a0b815ef30e7bfbc6aa"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/429229bb-a18a-4fea-ad5f-986fe93697e5"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/429229bb-a18a-4fea-ad5f-986fe93697e5"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/429229bb-a18a-4fea-ad5f-986fe93697e5"},"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:36466","level":"info","msg":"Received request.","req_id":407,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:53Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":407,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.927794,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:53Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":408,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:53Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8cc5b522-e270-45da-b850-374563378bc7","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/8cc5b522-e270-45da-b850-374563378bc7","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679753,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1M30.3LF_fIwQpSnTQ9adzjw5QAu-MbeUNT_u3cYKC5-8tv8"} 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":"e73c09d0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":408,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.168295,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:53Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee7296b3-2714-42a4-a279-13a525aef1b8","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/ee7296b3-2714-42a4-a279-13a525aef1b8","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679753,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1M30.3LF_fIwQpSnTQ9adzjw5QAu-MbeUNT_u3cYKC5-8tv8"} 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":"e73c57f0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8cc5b522-e270-45da-b850-374563378bc7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8cc5b522-e270-45da-b850-374563378bc7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:51.795876251Z"}]},"request_id":"45d9faff-8db0-4c5f-bba2-4dbe7dceb816","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679753.97653} 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":"e73c09d0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee7296b3-2714-42a4-a279-13a525aef1b8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee7296b3-2714-42a4-a279-13a525aef1b8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:51.845014333Z"}]},"request_id":"7db9b881-9f60-4d1b-b076-775e15b06965","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679753.9775631} 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":"e73c57f0-2406-11ef-9563-e3996e819f8c"},"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/8cc5b522-e270-45da-b850-374563378bc7? 200 17ms","method":"GET","requestID":"e73c09d0-2406-11ef-9563-e3996e819f8c","responseTime":17,"status":200,"url":"/devices/8cc5b522-e270-45da-b850-374563378bc7?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/ee7296b3-2714-42a4-a279-13a525aef1b8? 200 15ms","method":"GET","requestID":"e73c57f0-2406-11ef-9563-e3996e819f8c","responseTime":15,"status":200,"url":"/devices/ee7296b3-2714-42a4-a279-13a525aef1b8?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/429229bb-a18a-4fea-ad5f-986fe93697e5"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/429229bb-a18a-4fea-ad5f-986fe93697e5"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/429229bb-a18a-4fea-ad5f-986fe93697e5"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/429229bb-a18a-4fea-ad5f-986fe93697e5"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/429229bb-a18a-4fea-ad5f-986fe93697e5"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/429229bb-a18a-4fea-ad5f-986fe93697e5"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/429229bb-a18a-4fea-ad5f-986fe93697e5"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/429229bb-a18a-4fea-ad5f-986fe93697e5"},"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/429229bb-a18a-4fea-ad5f-986fe93697e5"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":409,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:54Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":409,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.05599,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:54Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":410,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8cc5b522-e270-45da-b850-374563378bc7","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/8cc5b522-e270-45da-b850-374563378bc7","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679753,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1M30.3LF_fIwQpSnTQ9adzjw5QAu-MbeUNT_u3cYKC5-8tv8"} 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":"e7466a10-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":410,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.72951,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee7296b3-2714-42a4-a279-13a525aef1b8","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/ee7296b3-2714-42a4-a279-13a525aef1b8","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679753,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1M30.3LF_fIwQpSnTQ9adzjw5QAu-MbeUNT_u3cYKC5-8tv8"} 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":"e7469120-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8cc5b522-e270-45da-b850-374563378bc7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8cc5b522-e270-45da-b850-374563378bc7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:51.795876251Z"}]},"request_id":"af530a0f-e41a-4090-ad73-1b57684d15b8","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679754.0421982} 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":"e7466a10-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee7296b3-2714-42a4-a279-13a525aef1b8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee7296b3-2714-42a4-a279-13a525aef1b8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:51.845014333Z"}]},"request_id":"fb680b8f-0c10-4760-9a31-5d3ed761091b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679754.0427806} 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":"e7469120-2406-11ef-9563-e3996e819f8c"},"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/8cc5b522-e270-45da-b850-374563378bc7? 200 14ms","method":"GET","requestID":"e7466a10-2406-11ef-9563-e3996e819f8c","responseTime":14,"status":200,"url":"/devices/8cc5b522-e270-45da-b850-374563378bc7?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/ee7296b3-2714-42a4-a279-13a525aef1b8? 200 13ms","method":"GET","requestID":"e7469120-2406-11ef-9563-e3996e819f8c","responseTime":13,"status":200,"url":"/devices/ee7296b3-2714-42a4-a279-13a525aef1b8?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":411,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:54Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":411,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.133698,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:54Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/8cc5b522-e270-45da-b850-374563378bc7","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8cc5b522-e270-45da-b850-374563378bc7","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e7490220-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F429229bb-a18a-4fea-ad5f-986fe93697e5#owner@http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F429229bb-a18a-4fea-ad5f-986fe93697e5","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"96bdb087-43bb-48e4-8e78-80d6af94d7c2","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679754.0576181} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2f05c822-b3a8-4da8-a219-6b6d64b59436","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679754.0578125} 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":"141d58a0cf584a0b815ef30e7bfbc6aa"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":21}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/8cc5b522-e270-45da-b850-374563378bc7/signaling 200 12ms","method":"POST","requestID":"e7490220-2406-11ef-9563-e3996e819f8c","responseTime":12,"status":200,"url":"/devices/8cc5b522-e270-45da-b850-374563378bc7/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":412,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:54Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/429229bb-a18a-4fea-ad5f-986fe93697e5","user":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"06/Jun/2024:13:15:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.159","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"141d58a0cf584a0b815ef30e7bfbc6aa"} experiment-1 | {"level":"info","message":"POST /experiments? 201 153ms","method":"POST","requestID":"141d58a0cf584a0b815ef30e7bfbc6aa","responseTime":153,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":412,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.94852,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:54Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee7296b3-2714-42a4-a279-13a525aef1b8","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ee7296b3-2714-42a4-a279-13a525aef1b8","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e74b9a30-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1NH0.dkT9wobW-TnaykxgVZCOKbW6nwu52UMCIifxxDa3lR8","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"POST /devices/ee7296b3-2714-42a4-a279-13a525aef1b8/signaling 200 11ms","method":"POST","requestID":"e74b9a30-2406-11ef-9563-e3996e819f8c","responseTime":11,"status":200,"url":"/devices/ee7296b3-2714-42a4-a279-13a525aef1b8/signaling"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"614779ab1fb952bb5f9e3985be85d350","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/429229bb-a18a-4fea-ad5f-986fe93697e5"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/429229bb-a18a-4fea-ad5f-986fe93697e5"},"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":"9a39e271-d93c-49f5-9fd5-a55e84280efb"},{"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":"12fe17fa-597c-4600-879d-cf648aa3e39f"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"02dcef87-eddb-47ae-85cb-98c979225770"}]},"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/ee7296b3-2714-42a4-a279-13a525aef1b8"},{"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/8cc5b522-e270-45da-b850-374563378bc7"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":413,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:54Z"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":413,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.014607,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8cc5b522-e270-45da-b850-374563378bc7","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/8cc5b522-e270-45da-b850-374563378bc7","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679754,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1NH0.dkT9wobW-TnaykxgVZCOKbW6nwu52UMCIifxxDa3lR8"} 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":"614779ab1fb952bb5f9e3985be85d350"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":414,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:54Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":414,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.980667,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:54Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679753,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1M30.3LF_fIwQpSnTQ9adzjw5QAu-MbeUNT_u3cYKC5-8tv8"} 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":"e74de420-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8cc5b522-e270-45da-b850-374563378bc7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8cc5b522-e270-45da-b850-374563378bc7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:51.795876251Z"}]},"request_id":"eaaf2a59-0487-4191-874b-0552bf5daffe","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679754.0878646} 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":"614779ab1fb952bb5f9e3985be85d350"},"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":"06/Jun/2024:13:15:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8cc5b522-e270-45da-b850-374563378bc7? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"614779ab1fb952bb5f9e3985be85d350"} device-1 | {"level":"info","message":"GET /devices/8cc5b522-e270-45da-b850-374563378bc7? 200 16ms","method":"GET","requestID":"614779ab1fb952bb5f9e3985be85d350","responseTime":16,"status":200,"url":"/devices/8cc5b522-e270-45da-b850-374563378bc7?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1NH0.dkT9wobW-TnaykxgVZCOKbW6nwu52UMCIifxxDa3lR8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"9de1f227e356171384da6f5fba2467ae","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"239a74e4-5c9d-42b5-af25-ddb43d6866f2","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679754.101475} device-1 | {"level":"info","message":"getDevicesByDeviceId 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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"edca0c95-c608-4fcb-a2f9-1c89c4758b6a","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679754.1018455} 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":"e74de420-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":415,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:54Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":415,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.396432,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee7296b3-2714-42a4-a279-13a525aef1b8","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/ee7296b3-2714-42a4-a279-13a525aef1b8","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679754,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1NH0.dkT9wobW-TnaykxgVZCOKbW6nwu52UMCIifxxDa3lR8"} 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":"9de1f227e356171384da6f5fba2467ae"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee7296b3-2714-42a4-a279-13a525aef1b8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee7296b3-2714-42a4-a279-13a525aef1b8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:51.845014333Z"}]},"request_id":"2cc23f81-35b5-47a6-8c03-3fc6eae0c3c2","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679754.1118565} 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":"9de1f227e356171384da6f5fba2467ae"},"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/ef0f9a66-f76b-467e-9166-8383cc3e2ceb'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/ef0f9a66-f76b-467e-9166-8383cc3e2ceb'"} 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":"e74de420-2406-11ef-9563-e3996e819f8c","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":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/ee7296b3-2714-42a4-a279-13a525aef1b8? 200 18ms","method":"GET","requestID":"9de1f227e356171384da6f5fba2467ae","responseTime":18,"status":200,"url":"/devices/ee7296b3-2714-42a4-a279-13a525aef1b8?"} gateway-1 | {"time_local":"06/Jun/2024:13:15:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ee7296b3-2714-42a4-a279-13a525aef1b8? 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":"9de1f227e356171384da6f5fba2467ae"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"ef0f9a66-f76b-467e-9166-8383cc3e2ceb","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/429229bb-a18a-4fea-ad5f-986fe93697e5"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/ef0f9a66-f76b-467e-9166-8383cc3e2ceb' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ef0f9a66-f76b-467e-9166-8383cc3e2ceb","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"42390cb7894b59389dbd6d85472ae088","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/ee7296b3-2714-42a4-a279-13a525aef1b8"},{"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/8cc5b522-e270-45da-b850-374563378bc7"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/ef0f9a66-f76b-467e-9166-8383cc3e2ceb"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 4ms","method":"POST","requestID":"42390cb7894b59389dbd6d85472ae088","responseTime":4,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:54 +0000","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":"42390cb7894b59389dbd6d85472ae088"} device-1 | {"data":{"peerconnection":"ef0f9a66-f76b-467e-9166-8383cc3e2ceb","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"ef0f9a66-f76b-467e-9166-8383cc3e2ceb","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/ef0f9a66-f76b-467e-9166-8383cc3e2ceb' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ef0f9a66-f76b-467e-9166-8383cc3e2ceb","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"dc30f539e65f6bb157e88f2bc46a7669","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/ee7296b3-2714-42a4-a279-13a525aef1b8"},{"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/8cc5b522-e270-45da-b850-374563378bc7"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/ef0f9a66-f76b-467e-9166-8383cc3e2ceb"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":416,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:54Z"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","contextual_tuples":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fef0f9a66-f76b-467e-9166-8383cc3e2ceb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"459a3710-d46f-4d80-bf31-8656d88fea6c","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679754.2310815} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":416,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.261063,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ef0f9a66-f76b-467e-9166-8383cc3e2ceb","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/ef0f9a66-f76b-467e-9166-8383cc3e2ceb","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":"e7638f00-2406-11ef-9563-e3996e819f8c"},"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/ef0f9a66-f76b-467e-9166-8383cc3e2ceb 200 11ms","method":"GET","requestID":"e7638f00-2406-11ef-9563-e3996e819f8c","responseTime":11,"status":200,"url":"/peerconnections/ef0f9a66-f76b-467e-9166-8383cc3e2ceb"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 29ms","method":"POST","requestID":"dc30f539e65f6bb157e88f2bc46a7669","responseTime":29,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:54 +0000","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":"dc30f539e65f6bb157e88f2bc46a7669"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1NH0.dkT9wobW-TnaykxgVZCOKbW6nwu52UMCIifxxDa3lR8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b560eea8636d627757567f3c27f689d7","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/429229bb-a18a-4fea-ad5f-986fe93697e5"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":417,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:54Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":417,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.254672,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/429229bb-a18a-4fea-ad5f-986fe93697e5","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/429229bb-a18a-4fea-ad5f-986fe93697e5","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679754,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1NH0.dkT9wobW-TnaykxgVZCOKbW6nwu52UMCIifxxDa3lR8"} 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":"b560eea8636d627757567f3c27f689d7"},"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/429229bb-a18a-4fea-ad5f-986fe93697e5"} experiment-1 | {"level":"info","message":"GET /experiments/429229bb-a18a-4fea-ad5f-986fe93697e5 200 15ms","method":"GET","requestID":"b560eea8636d627757567f3c27f689d7","responseTime":15,"status":200,"url":"/experiments/429229bb-a18a-4fea-ad5f-986fe93697e5"} gateway-1 | {"time_local":"06/Jun/2024:13:15:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/429229bb-a18a-4fea-ad5f-986fe93697e5 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":"b560eea8636d627757567f3c27f689d7"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1NH0.dkT9wobW-TnaykxgVZCOKbW6nwu52UMCIifxxDa3lR8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e344446e5176f4e4628c3acb978c1f67","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/429229bb-a18a-4fea-ad5f-986fe93697e5"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":418,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:54Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":418,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.195355,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:54Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/429229bb-a18a-4fea-ad5f-986fe93697e5","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/429229bb-a18a-4fea-ad5f-986fe93697e5","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679754,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1NH0.dkT9wobW-TnaykxgVZCOKbW6nwu52UMCIifxxDa3lR8"} 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":"e344446e5176f4e4628c3acb978c1f67"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/429229bb-a18a-4fea-ad5f-986fe93697e5"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":419,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:54Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":419,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.341452,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:54Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ef0f9a66-f76b-467e-9166-8383cc3e2ceb","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:http://localhost/peerconnections/ef0f9a66-f76b-467e-9166-8383cc3e2ceb","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679754,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1NH0.dkT9wobW-TnaykxgVZCOKbW6nwu52UMCIifxxDa3lR8"} 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":"e7776520-2406-11ef-9563-e3996e819f8c"},"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/ef0f9a66-f76b-467e-9166-8383cc3e2ceb' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/ef0f9a66-f76b-467e-9166-8383cc3e2ceb' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ef0f9a66-f76b-467e-9166-8383cc3e2ceb","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"4ef0cb596921b7e9e555083fa674d083","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fef0f9a66-f76b-467e-9166-8383cc3e2ceb': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fef0f9a66-f76b-467e-9166-8383cc3e2ceb","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"9d490fca-811b-4415-940c-920c24595018","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679754.3790863} 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c32da6b1-5c45-4a75-ba31-722631599c91","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679754.3798864} 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/ee7296b3-2714-42a4-a279-13a525aef1b8"},{"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/8cc5b522-e270-45da-b850-374563378bc7"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ef0f9a66-f76b-467e-9166-8383cc3e2ceb"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ea34e02df119ab40e639beebacc19c49","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":"e7776520-2406-11ef-9563-e3996e819f8c"},"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","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/ee7296b3-2714-42a4-a279-13a525aef1b8"},{"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/8cc5b522-e270-45da-b850-374563378bc7"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ef0f9a66-f76b-467e-9166-8383cc3e2ceb"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/ef0f9a66-f76b-467e-9166-8383cc3e2ceb 204 48ms","method":"DELETE","requestID":"e7776520-2406-11ef-9563-e3996e819f8c","responseTime":48,"status":204,"url":"/peerconnections/ef0f9a66-f76b-467e-9166-8383cc3e2ceb"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/ee7296b3-2714-42a4-a279-13a525aef1b8'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/429229bb-a18a-4fea-ad5f-986fe93697e5"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F429229bb-a18a-4fea-ad5f-986fe93697e5': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F429229bb-a18a-4fea-ad5f-986fe93697e5","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"78400275-8db0-4364-8779-8806a42fc61d","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679754.442349} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"75137338-01e1-4dcb-9ef5-2fddaf2f75c4","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679754.4428847} 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":"e344446e5176f4e4628c3acb978c1f67"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":18}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/429229bb-a18a-4fea-ad5f-986fe93697e5"} gateway-1 | {"time_local":"06/Jun/2024:13:15:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/429229bb-a18a-4fea-ad5f-986fe93697e5 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":"e344446e5176f4e4628c3acb978c1f67"} experiment-1 | {"level":"info","message":"DELETE /experiments/429229bb-a18a-4fea-ad5f-986fe93697e5 204 173ms","method":"DELETE","requestID":"e344446e5176f4e4628c3acb978c1f67","responseTime":173,"status":204,"url":"/experiments/429229bb-a18a-4fea-ad5f-986fe93697e5"} gateway-1 | {"time_local":"06/Jun/2024:13:15:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1641","request_time":"2.134","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"41f9f19cc02057bc9fced8c069693493"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 133ms","method":"POST","requestID":"4ef0cb596921b7e9e555083fa674d083","responseTime":133,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:54 +0000","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":"4ef0cb596921b7e9e555083fa674d083"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 131ms","method":"POST","requestID":"ea34e02df119ab40e639beebacc19c49","responseTime":131,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:54 +0000","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":"ea34e02df119ab40e639beebacc19c49"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1NH0.dkT9wobW-TnaykxgVZCOKbW6nwu52UMCIifxxDa3lR8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1c70d0c3975ea3ad94ed7db3310ee233","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"06/Jun/2024:13:15:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1722","request_time":"0.668","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"c68332edde0aa2d76a215203d5bf2841"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":420,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:54Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":420,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.75996,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:54Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679754,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1NH0.dkT9wobW-TnaykxgVZCOKbW6nwu52UMCIifxxDa3lR8"} 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":"1c70d0c3975ea3ad94ed7db3310ee233"},"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/8cc5b522-e270-45da-b850-374563378bc7' 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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6000fd42-3049-4925-833b-dbb5516f8ac4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"5c94d10e-0aa8-4c21-9ee1-65b28a2959f4","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679754.5433207} 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":"1c70d0c3975ea3ad94ed7db3310ee233"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5e750f1d-16e1-4278-be4b-27b687bd9645","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679754.5485635} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/ee7296b3-2714-42a4-a279-13a525aef1b8' closed"} 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":"1c70d0c3975ea3ad94ed7db3310ee233"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6000fd42-3049-4925-833b-dbb5516f8ac4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"0b6c6f7e-e39b-417f-a847-fe177e1eedc0","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679754.5599964} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"623e3aea-fd11-4dd4-851c-a574b4a761e5","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679754.560783} 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":"1c70d0c3975ea3ad94ed7db3310ee233"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6000fd42-3049-4925-833b-dbb5516f8ac4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6000fd42-3049-4925-833b-dbb5516f8ac4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:54.559973148Z"}]},"request_id":"0cfd6486-a1d5-4616-a725-bccbd0914b0c","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679754.5718546} 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":"1c70d0c3975ea3ad94ed7db3310ee233"},"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":"06/Jun/2024:13:15:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.062","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1c70d0c3975ea3ad94ed7db3310ee233"} device-1 | {"level":"info","message":"POST /devices? 201 56ms","method":"POST","requestID":"1c70d0c3975ea3ad94ed7db3310ee233","responseTime":56,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1NH0.dkT9wobW-TnaykxgVZCOKbW6nwu52UMCIifxxDa3lR8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"acf0f8537e5530074fad8acb67babc0b","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":421,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:54Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":421,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.702243,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:54Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679754,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1NH0.dkT9wobW-TnaykxgVZCOKbW6nwu52UMCIifxxDa3lR8"} 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":"acf0f8537e5530074fad8acb67babc0b"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6f742d2-c6cb-4077-9919-f52441ec8ac5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"7c888b05-b56c-45bb-9be4-6e9016ad9d6f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679754.5960598} 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":"acf0f8537e5530074fad8acb67babc0b"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"035fde88-2bdc-4590-a4c9-cfc0c665df62","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679754.6009836} 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":"acf0f8537e5530074fad8acb67babc0b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6f742d2-c6cb-4077-9919-f52441ec8ac5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"37df506a-f12d-4599-9055-0e148d9f58b1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679754.6178126} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"59039fcd-74c4-4a3c-a44c-511b05303ff0","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679754.6179373} 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":"acf0f8537e5530074fad8acb67babc0b"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6f742d2-c6cb-4077-9919-f52441ec8ac5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6f742d2-c6cb-4077-9919-f52441ec8ac5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:54.617788379Z"}]},"request_id":"66d3a905-5b0c-44c3-82f0-face27cbeef6","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679754.6223116} 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":"acf0f8537e5530074fad8acb67babc0b"},"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 45ms","method":"POST","requestID":"acf0f8537e5530074fad8acb67babc0b","responseTime":45,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"06/Jun/2024:13:15:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"acf0f8537e5530074fad8acb67babc0b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1NX0.R-qamZMKKGOP_vtx003lDbNCTPoT1eAAlxXO07Q0hPY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"0bee9741e7b820a32a80356858d5a372","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":422,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:55Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":422,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.026664,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:55Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6000fd42-3049-4925-833b-dbb5516f8ac4","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/6000fd42-3049-4925-833b-dbb5516f8ac4","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679755,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1NX0.R-qamZMKKGOP_vtx003lDbNCTPoT1eAAlxXO07Q0hPY"} 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":"0bee9741e7b820a32a80356858d5a372"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6000fd42-3049-4925-833b-dbb5516f8ac4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6000fd42-3049-4925-833b-dbb5516f8ac4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:54.559973148Z"}]},"request_id":"a43b4e18-e9d1-47ba-b976-91e22bb08599","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679755.0987604} 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":"0bee9741e7b820a32a80356858d5a372"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b82313a3-6674-4705-8774-fb91f2c58030","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679755.1046216} 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":"0bee9741e7b820a32a80356858d5a372"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6000fd42-3049-4925-833b-dbb5516f8ac4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6000fd42-3049-4925-833b-dbb5516f8ac4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:54.559973148Z"}]},"request_id":"40f7520d-481d-48f5-a686-f511fa835c61","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679755.1170032} 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":"0bee9741e7b820a32a80356858d5a372"},"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":"06/Jun/2024:13:15:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/6000fd42-3049-4925-833b-dbb5516f8ac4 HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.038","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"0bee9741e7b820a32a80356858d5a372"} device-1 | {"level":"info","message":"PATCH /devices/6000fd42-3049-4925-833b-dbb5516f8ac4 200 32ms","method":"PATCH","requestID":"0bee9741e7b820a32a80356858d5a372","responseTime":32,"status":200,"url":"/devices/6000fd42-3049-4925-833b-dbb5516f8ac4"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1NX0.R-qamZMKKGOP_vtx003lDbNCTPoT1eAAlxXO07Q0hPY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"73b3f7889f987cdfacb33bc420480db4","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":423,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:55Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":423,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.653723,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:55Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6000fd42-3049-4925-833b-dbb5516f8ac4","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/6000fd42-3049-4925-833b-dbb5516f8ac4","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679755,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1NX0.R-qamZMKKGOP_vtx003lDbNCTPoT1eAAlxXO07Q0hPY"} 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":"73b3f7889f987cdfacb33bc420480db4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/6000fd42-3049-4925-833b-dbb5516f8ac4/websocket 200 14ms","method":"POST","requestID":"73b3f7889f987cdfacb33bc420480db4","responseTime":14,"status":200,"url":"/devices/6000fd42-3049-4925-833b-dbb5516f8ac4/websocket"} gateway-1 | {"time_local":"06/Jun/2024:13:15:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/6000fd42-3049-4925-833b-dbb5516f8ac4/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":"73b3f7889f987cdfacb33bc420480db4"} device-1 | {"level":"info","message":"device 'http://localhost/devices/6000fd42-3049-4925-833b-dbb5516f8ac4' 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c99005587aa01fa5af74ddf90131b20a","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"OPTIONS /devices/a6f742d2-c6cb-4077-9919-f52441ec8ac5/websocket 200 1ms","method":"OPTIONS","requestID":"c99005587aa01fa5af74ddf90131b20a","responseTime":1,"status":200,"url":"/devices/a6f742d2-c6cb-4077-9919-f52441ec8ac5/websocket"} gateway-1 | {"time_local":"06/Jun/2024:13:15:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/a6f742d2-c6cb-4077-9919-f52441ec8ac5/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":"c99005587aa01fa5af74ddf90131b20a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1Nn0._47WrvQuhTAm8UeRxnGkfAew8lcnZ__Scji7idm9ccc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"510ce314074f4646a394ae1fea46c9ec","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":424,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:56Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":424,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.425991,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:56Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/a6f742d2-c6cb-4077-9919-f52441ec8ac5","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/a6f742d2-c6cb-4077-9919-f52441ec8ac5","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679756,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1Nn0._47WrvQuhTAm8UeRxnGkfAew8lcnZ__Scji7idm9ccc"} 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":"510ce314074f4646a394ae1fea46c9ec"},"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":"06/Jun/2024:13:15:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/a6f742d2-c6cb-4077-9919-f52441ec8ac5/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":"510ce314074f4646a394ae1fea46c9ec"} device-1 | {"level":"info","message":"POST /devices/a6f742d2-c6cb-4077-9919-f52441ec8ac5/websocket 200 23ms","method":"POST","requestID":"510ce314074f4646a394ae1fea46c9ec","responseTime":23,"status":200,"url":"/devices/a6f742d2-c6cb-4077-9919-f52441ec8ac5/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/a6f742d2-c6cb-4077-9919-f52441ec8ac5' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1Nn0._47WrvQuhTAm8UeRxnGkfAew8lcnZ__Scji7idm9ccc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7e8f05d76c6ea22aedfdfabd5482c995","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":425,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:56Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":425,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.333135,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6000fd42-3049-4925-833b-dbb5516f8ac4","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/6000fd42-3049-4925-833b-dbb5516f8ac4","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679756,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1Nn0._47WrvQuhTAm8UeRxnGkfAew8lcnZ__Scji7idm9ccc"} 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":"7e8f05d76c6ea22aedfdfabd5482c995"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6000fd42-3049-4925-833b-dbb5516f8ac4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6000fd42-3049-4925-833b-dbb5516f8ac4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:54.559973148Z"}]},"request_id":"639e6b6c-5ad0-4f4b-9990-9a2a16598653","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679756.6887715} 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":"7e8f05d76c6ea22aedfdfabd5482c995"},"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/6000fd42-3049-4925-833b-dbb5516f8ac4? 200 13ms","method":"GET","requestID":"7e8f05d76c6ea22aedfdfabd5482c995","responseTime":13,"status":200,"url":"/devices/6000fd42-3049-4925-833b-dbb5516f8ac4?"} gateway-1 | {"time_local":"06/Jun/2024:13:15:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6000fd42-3049-4925-833b-dbb5516f8ac4? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7e8f05d76c6ea22aedfdfabd5482c995"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1Nn0._47WrvQuhTAm8UeRxnGkfAew8lcnZ__Scji7idm9ccc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"81f7f3bb03204f46eae4676e4535ecb1","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":426,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:56Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":426,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.779754,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a6f742d2-c6cb-4077-9919-f52441ec8ac5","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/a6f742d2-c6cb-4077-9919-f52441ec8ac5","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679756,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1Nn0._47WrvQuhTAm8UeRxnGkfAew8lcnZ__Scji7idm9ccc"} 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":"81f7f3bb03204f46eae4676e4535ecb1"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6f742d2-c6cb-4077-9919-f52441ec8ac5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6f742d2-c6cb-4077-9919-f52441ec8ac5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:54.617788379Z"}]},"request_id":"32a9ff0f-9831-4900-a1f3-2eaf358ab995","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679756.7096715} 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":"81f7f3bb03204f46eae4676e4535ecb1"},"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/a6f742d2-c6cb-4077-9919-f52441ec8ac5? 200 14ms","method":"GET","requestID":"81f7f3bb03204f46eae4676e4535ecb1","responseTime":14,"status":200,"url":"/devices/a6f742d2-c6cb-4077-9919-f52441ec8ac5?"} gateway-1 | {"time_local":"06/Jun/2024:13:15:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a6f742d2-c6cb-4077-9919-f52441ec8ac5? 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":"81f7f3bb03204f46eae4676e4535ecb1"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1Nn0._47WrvQuhTAm8UeRxnGkfAew8lcnZ__Scji7idm9ccc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"d747343455da08a69fa851b0ef7f8cfd","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:36466","level":"info","msg":"Received request.","req_id":427,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:56Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":427,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.281937,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:56Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679756,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1Nn0._47WrvQuhTAm8UeRxnGkfAew8lcnZ__Scji7idm9ccc"} 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":"d747343455da08a69fa851b0ef7f8cfd"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ff7463c-7d14-42bb-a8a4-4a658cc415c5"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ff7463c-7d14-42bb-a8a4-4a658cc415c5"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ff7463c-7d14-42bb-a8a4-4a658cc415c5"},"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:36466","level":"info","msg":"Received request.","req_id":428,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:56Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":428,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.228194,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:56Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":429,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6000fd42-3049-4925-833b-dbb5516f8ac4","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/6000fd42-3049-4925-833b-dbb5516f8ac4","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679756,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1Nn0._47WrvQuhTAm8UeRxnGkfAew8lcnZ__Scji7idm9ccc"} 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":"e8e6fab0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":429,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.2103,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a6f742d2-c6cb-4077-9919-f52441ec8ac5","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/a6f742d2-c6cb-4077-9919-f52441ec8ac5","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679756,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1Nn0._47WrvQuhTAm8UeRxnGkfAew8lcnZ__Scji7idm9ccc"} 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":"e8e748d0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6000fd42-3049-4925-833b-dbb5516f8ac4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6000fd42-3049-4925-833b-dbb5516f8ac4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:54.559973148Z"}]},"request_id":"10ba20ac-1977-4813-be47-609b555337a2","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679756.7754924} 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":"e8e6fab0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6f742d2-c6cb-4077-9919-f52441ec8ac5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6f742d2-c6cb-4077-9919-f52441ec8ac5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:54.617788379Z"}]},"request_id":"8c9703fa-b069-4dc8-875a-a5ac50adfb02","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679756.777311} 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":"e8e748d0-2406-11ef-9563-e3996e819f8c"},"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/6000fd42-3049-4925-833b-dbb5516f8ac4? 200 21ms","method":"GET","requestID":"e8e6fab0-2406-11ef-9563-e3996e819f8c","responseTime":21,"status":200,"url":"/devices/6000fd42-3049-4925-833b-dbb5516f8ac4?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/a6f742d2-c6cb-4077-9919-f52441ec8ac5? 200 20ms","method":"GET","requestID":"e8e748d0-2406-11ef-9563-e3996e819f8c","responseTime":20,"status":200,"url":"/devices/a6f742d2-c6cb-4077-9919-f52441ec8ac5?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ff7463c-7d14-42bb-a8a4-4a658cc415c5"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ff7463c-7d14-42bb-a8a4-4a658cc415c5"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ff7463c-7d14-42bb-a8a4-4a658cc415c5"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ff7463c-7d14-42bb-a8a4-4a658cc415c5"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ff7463c-7d14-42bb-a8a4-4a658cc415c5"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ff7463c-7d14-42bb-a8a4-4a658cc415c5"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ff7463c-7d14-42bb-a8a4-4a658cc415c5"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ff7463c-7d14-42bb-a8a4-4a658cc415c5"},"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:36466","level":"info","msg":"Received request.","req_id":430,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:56Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":430,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.92678,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:56Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":431,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:56Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ff7463c-7d14-42bb-a8a4-4a658cc415c5"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6000fd42-3049-4925-833b-dbb5516f8ac4","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/6000fd42-3049-4925-833b-dbb5516f8ac4","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679756,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1Nn0._47WrvQuhTAm8UeRxnGkfAew8lcnZ__Scji7idm9ccc"} 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":"e8f37dd0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":431,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.998942,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a6f742d2-c6cb-4077-9919-f52441ec8ac5","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/a6f742d2-c6cb-4077-9919-f52441ec8ac5","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679756,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1Nn0._47WrvQuhTAm8UeRxnGkfAew8lcnZ__Scji7idm9ccc"} 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":"e8f3cbf0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6000fd42-3049-4925-833b-dbb5516f8ac4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6000fd42-3049-4925-833b-dbb5516f8ac4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:54.559973148Z"}]},"request_id":"069589ac-2ff4-4781-9bec-662a290a993d","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679756.859626} 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":"e8f37dd0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6f742d2-c6cb-4077-9919-f52441ec8ac5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6f742d2-c6cb-4077-9919-f52441ec8ac5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:54.617788379Z"}]},"request_id":"a20dbbdb-ccd8-40b4-8c14-e5a548ca33f2","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679756.8612566} 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":"e8f3cbf0-2406-11ef-9563-e3996e819f8c"},"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/6000fd42-3049-4925-833b-dbb5516f8ac4? 200 23ms","method":"GET","requestID":"e8f37dd0-2406-11ef-9563-e3996e819f8c","responseTime":23,"status":200,"url":"/devices/6000fd42-3049-4925-833b-dbb5516f8ac4?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/a6f742d2-c6cb-4077-9919-f52441ec8ac5? 200 22ms","method":"GET","requestID":"e8f3cbf0-2406-11ef-9563-e3996e819f8c","responseTime":22,"status":200,"url":"/devices/a6f742d2-c6cb-4077-9919-f52441ec8ac5?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7ff7463c-7d14-42bb-a8a4-4a658cc415c5#owner@http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7ff7463c-7d14-42bb-a8a4-4a658cc415c5","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"13c5326c-5b99-427a-ae96-cd5900045191","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679756.877466} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"61608edc-29b0-4946-b33b-00476e87d58b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679756.877789} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":432,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:56Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":432,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.86554,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:56Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 26ms","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":"d747343455da08a69fa851b0ef7f8cfd"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":26}} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/6000fd42-3049-4925-833b-dbb5516f8ac4","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6000fd42-3049-4925-833b-dbb5516f8ac4","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e8f79c80-2406-11ef-9563-e3996e819f8c"},"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/6000fd42-3049-4925-833b-dbb5516f8ac4/signaling 200 15ms","method":"POST","requestID":"e8f79c80-2406-11ef-9563-e3996e819f8c","responseTime":15,"status":200,"url":"/devices/6000fd42-3049-4925-833b-dbb5516f8ac4/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/7ff7463c-7d14-42bb-a8a4-4a658cc415c5","user":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"06/Jun/2024:13:15:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.181","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d747343455da08a69fa851b0ef7f8cfd"} experiment-1 | {"level":"info","message":"POST /experiments? 201 174ms","method":"POST","requestID":"d747343455da08a69fa851b0ef7f8cfd","responseTime":174,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":433,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:56Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":433,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.966655,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:56Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/a6f742d2-c6cb-4077-9919-f52441ec8ac5","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a6f742d2-c6cb-4077-9919-f52441ec8ac5","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e8faf7e0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1Nn0._47WrvQuhTAm8UeRxnGkfAew8lcnZ__Scji7idm9ccc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"7d488e768eb372b941a7397c169970b6","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/a6f742d2-c6cb-4077-9919-f52441ec8ac5/signaling 200 9ms","method":"POST","requestID":"e8faf7e0-2406-11ef-9563-e3996e819f8c","responseTime":9,"status":200,"url":"/devices/a6f742d2-c6cb-4077-9919-f52441ec8ac5/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ff7463c-7d14-42bb-a8a4-4a658cc415c5"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ff7463c-7d14-42bb-a8a4-4a658cc415c5"},"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":"626021cf-9435-4dab-ad61-cf2af2c0f900"},{"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":"a84c2d0b-2740-4f28-b839-e5bc6fcebe82"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"0fdd5fd0-788d-46a7-aee9-b70a693235af"}]},"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/a6f742d2-c6cb-4077-9919-f52441ec8ac5"},{"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/6000fd42-3049-4925-833b-dbb5516f8ac4"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":434,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:56Z"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":434,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.967525,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6000fd42-3049-4925-833b-dbb5516f8ac4","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/6000fd42-3049-4925-833b-dbb5516f8ac4","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679756,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1Nn0._47WrvQuhTAm8UeRxnGkfAew8lcnZ__Scji7idm9ccc"} 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":"7d488e768eb372b941a7397c169970b6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":435,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:56Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":435,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.571188,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:56Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679756,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1Nn0._47WrvQuhTAm8UeRxnGkfAew8lcnZ__Scji7idm9ccc"} 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":"e8fccca0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6000fd42-3049-4925-833b-dbb5516f8ac4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6000fd42-3049-4925-833b-dbb5516f8ac4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:54.559973148Z"}]},"request_id":"303514d9-8f78-4a48-bdeb-1146fc5c3ed3","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679756.9135623} 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":"7d488e768eb372b941a7397c169970b6"},"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/6000fd42-3049-4925-833b-dbb5516f8ac4? 200 17ms","method":"GET","requestID":"7d488e768eb372b941a7397c169970b6","responseTime":17,"status":200,"url":"/devices/6000fd42-3049-4925-833b-dbb5516f8ac4?"} gateway-1 | {"time_local":"06/Jun/2024:13:15:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6000fd42-3049-4925-833b-dbb5516f8ac4? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7d488e768eb372b941a7397c169970b6"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1Nn0._47WrvQuhTAm8UeRxnGkfAew8lcnZ__Scji7idm9ccc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5da7d189238e6a92621886d383c6a6a8","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"f6d38407-f20f-45e1-851d-1bf06a3811ae","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679756.927776} device-1 | {"level":"info","message":"getDevicesByDeviceId 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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8e7c1598-be18-4770-9b4d-d9394c9bdcdf","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679756.9281673} 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":"e8fccca0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":436,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:56Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":436,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.182287,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a6f742d2-c6cb-4077-9919-f52441ec8ac5","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/a6f742d2-c6cb-4077-9919-f52441ec8ac5","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679756,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1Nn0._47WrvQuhTAm8UeRxnGkfAew8lcnZ__Scji7idm9ccc"} 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":"5da7d189238e6a92621886d383c6a6a8"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6f742d2-c6cb-4077-9919-f52441ec8ac5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6f742d2-c6cb-4077-9919-f52441ec8ac5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:54.617788379Z"}]},"request_id":"a49a6f05-c412-4172-a876-c5e588a5bde8","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679756.9379797} 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":"5da7d189238e6a92621886d383c6a6a8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"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/bfc2b984-4849-4dc6-b27b-662f2d314633'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/bfc2b984-4849-4dc6-b27b-662f2d314633'"} 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":"e8fccca0-2406-11ef-9563-e3996e819f8c","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":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/a6f742d2-c6cb-4077-9919-f52441ec8ac5? 200 17ms","method":"GET","requestID":"5da7d189238e6a92621886d383c6a6a8","responseTime":17,"status":200,"url":"/devices/a6f742d2-c6cb-4077-9919-f52441ec8ac5?"} gateway-1 | {"time_local":"06/Jun/2024:13:15:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a6f742d2-c6cb-4077-9919-f52441ec8ac5? 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":"5da7d189238e6a92621886d383c6a6a8"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"bfc2b984-4849-4dc6-b27b-662f2d314633","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ff7463c-7d14-42bb-a8a4-4a658cc415c5"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/bfc2b984-4849-4dc6-b27b-662f2d314633' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"bfc2b984-4849-4dc6-b27b-662f2d314633","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"695c5aae57187222218509fc959e2c03","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/a6f742d2-c6cb-4077-9919-f52441ec8ac5"},{"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/6000fd42-3049-4925-833b-dbb5516f8ac4"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/bfc2b984-4849-4dc6-b27b-662f2d314633"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"695c5aae57187222218509fc959e2c03","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"695c5aae57187222218509fc959e2c03"} device-1 | {"data":{"peerconnection":"bfc2b984-4849-4dc6-b27b-662f2d314633","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"bfc2b984-4849-4dc6-b27b-662f2d314633","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/bfc2b984-4849-4dc6-b27b-662f2d314633' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"bfc2b984-4849-4dc6-b27b-662f2d314633","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"9f49e05bfcc17207e23a86e901eabb85","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/a6f742d2-c6cb-4077-9919-f52441ec8ac5"},{"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/6000fd42-3049-4925-833b-dbb5516f8ac4"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/bfc2b984-4849-4dc6-b27b-662f2d314633"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":437,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:57Z"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","contextual_tuples":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fbfc2b984-4849-4dc6-b27b-662f2d314633","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b9bc3e2d-52ff-4347-b4dd-0bf24c6dea74","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679757.0733557} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":437,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":4.042723,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:57Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/bfc2b984-4849-4dc6-b27b-662f2d314633","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/bfc2b984-4849-4dc6-b27b-662f2d314633","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 8ms","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":"e91536a0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/bfc2b984-4849-4dc6-b27b-662f2d314633 200 12ms","method":"GET","requestID":"e91536a0-2406-11ef-9563-e3996e819f8c","responseTime":12,"status":200,"url":"/peerconnections/bfc2b984-4849-4dc6-b27b-662f2d314633"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 41ms","method":"POST","requestID":"9f49e05bfcc17207e23a86e901eabb85","responseTime":41,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch","requestID":"9f49e05bfcc17207e23a86e901eabb85"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1N30.Uud2kfuYZbBJ70u6JEb70RgFSC6RLJNcAlb937HERmM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"1ec140cffcf220d3121c6ee7f0d9f188","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/7ff7463c-7d14-42bb-a8a4-4a658cc415c5"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":438,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:57Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":438,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.212773,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:57Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/7ff7463c-7d14-42bb-a8a4-4a658cc415c5","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/7ff7463c-7d14-42bb-a8a4-4a658cc415c5","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679757,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1N30.Uud2kfuYZbBJ70u6JEb70RgFSC6RLJNcAlb937HERmM"} 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":"1ec140cffcf220d3121c6ee7f0d9f188"},"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/7ff7463c-7d14-42bb-a8a4-4a658cc415c5"} experiment-1 | {"level":"info","message":"GET /experiments/7ff7463c-7d14-42bb-a8a4-4a658cc415c5 200 15ms","method":"GET","requestID":"1ec140cffcf220d3121c6ee7f0d9f188","responseTime":15,"status":200,"url":"/experiments/7ff7463c-7d14-42bb-a8a4-4a658cc415c5"} gateway-1 | {"time_local":"06/Jun/2024:13:15:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/7ff7463c-7d14-42bb-a8a4-4a658cc415c5 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":"1ec140cffcf220d3121c6ee7f0d9f188"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1N30.Uud2kfuYZbBJ70u6JEb70RgFSC6RLJNcAlb937HERmM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c950bbcd3afaf5c70f2fa3b812110034","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/7ff7463c-7d14-42bb-a8a4-4a658cc415c5"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":439,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:57Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":439,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.224541,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:57Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/7ff7463c-7d14-42bb-a8a4-4a658cc415c5","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/7ff7463c-7d14-42bb-a8a4-4a658cc415c5","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679757,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1N30.Uud2kfuYZbBJ70u6JEb70RgFSC6RLJNcAlb937HERmM"} 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":"c950bbcd3afaf5c70f2fa3b812110034"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ff7463c-7d14-42bb-a8a4-4a658cc415c5"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":440,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:57Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":440,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":2.073684,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:57Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/bfc2b984-4849-4dc6-b27b-662f2d314633","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:http://localhost/peerconnections/bfc2b984-4849-4dc6-b27b-662f2d314633","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679757,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1N30.Uud2kfuYZbBJ70u6JEb70RgFSC6RLJNcAlb937HERmM"} 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":"e92933d0-2406-11ef-9563-e3996e819f8c"},"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/bfc2b984-4849-4dc6-b27b-662f2d314633' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/bfc2b984-4849-4dc6-b27b-662f2d314633' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"bfc2b984-4849-4dc6-b27b-662f2d314633","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"6f1e42b96802973b76424da0fd6c0cfe","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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-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/a6f742d2-c6cb-4077-9919-f52441ec8ac5"},{"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/6000fd42-3049-4925-833b-dbb5516f8ac4"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/bfc2b984-4849-4dc6-b27b-662f2d314633"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2bc48dc71af4cd5338a8bfd88f94c05e","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fbfc2b984-4849-4dc6-b27b-662f2d314633': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fbfc2b984-4849-4dc6-b27b-662f2d314633","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"64ea6c74-2b5b-4a58-b178-12e7c039e8ac","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679757.225347} 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/a6f742d2-c6cb-4077-9919-f52441ec8ac5"},{"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/6000fd42-3049-4925-833b-dbb5516f8ac4"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/bfc2b984-4849-4dc6-b27b-662f2d314633"}}},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7cf9e025-87b5-44a3-98ba-7266d2507e63","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679757.2260847} 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":"e92933d0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":13}} device-1 | {"data":{"peerconnection":"bfc2b984-4849-4dc6-b27b-662f2d314633","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/bfc2b984-4849-4dc6-b27b-662f2d314633 204 48ms","method":"DELETE","requestID":"e92933d0-2406-11ef-9563-e3996e819f8c","responseTime":48,"status":204,"url":"/peerconnections/bfc2b984-4849-4dc6-b27b-662f2d314633"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ff7463c-7d14-42bb-a8a4-4a658cc415c5"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7ff7463c-7d14-42bb-a8a4-4a658cc415c5': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7ff7463c-7d14-42bb-a8a4-4a658cc415c5","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"a866d897-ee0a-4d30-92d7-a0a2274c1e9c","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679757.280389} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"86cd3bfb-4d32-422e-bb6f-b35f3146a4c3","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679757.280739} 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":"c950bbcd3afaf5c70f2fa3b812110034"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/7ff7463c-7d14-42bb-a8a4-4a658cc415c5"} gateway-1 | {"time_local":"06/Jun/2024:13:15:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/7ff7463c-7d14-42bb-a8a4-4a658cc415c5 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.173","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c950bbcd3afaf5c70f2fa3b812110034"} gateway-1 | {"time_local":"06/Jun/2024:13:15:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1642","request_time":"2.210","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"fd4c848671a1b22e201f8a168d15c85b"} experiment-1 | {"level":"info","message":"DELETE /experiments/7ff7463c-7d14-42bb-a8a4-4a658cc415c5 204 169ms","method":"DELETE","requestID":"c950bbcd3afaf5c70f2fa3b812110034","responseTime":169,"status":204,"url":"/experiments/7ff7463c-7d14-42bb-a8a4-4a658cc415c5"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 131ms","method":"POST","requestID":"6f1e42b96802973b76424da0fd6c0cfe","responseTime":131,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.135","http_referrer":"","http_user_agent":"node-fetch","requestID":"6f1e42b96802973b76424da0fd6c0cfe"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 130ms","method":"POST","requestID":"2bc48dc71af4cd5338a8bfd88f94c05e","responseTime":130,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.136","http_referrer":"","http_user_agent":"node-fetch","requestID":"2bc48dc71af4cd5338a8bfd88f94c05e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1N30.Uud2kfuYZbBJ70u6JEb70RgFSC6RLJNcAlb937HERmM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"66a293c39d226dc129fdc6397875882b","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"06/Jun/2024:13:15:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1722","request_time":"0.704","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"894f918a8add6c8789e46b82bb5e5663"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/6000fd42-3049-4925-833b-dbb5516f8ac4' closed"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":441,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:57Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":441,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.102854,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:57Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679757,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1N30.Uud2kfuYZbBJ70u6JEb70RgFSC6RLJNcAlb937HERmM"} 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":"66a293c39d226dc129fdc6397875882b"},"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/a6f742d2-c6cb-4077-9919-f52441ec8ac5' 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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83e676d2-4fe6-43fa-8fb4-0434b28570bd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a3d0bcd1-a26e-4520-8e77-69371f994677","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679757.379369} 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":"66a293c39d226dc129fdc6397875882b"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5e219ee6-a243-4cee-bff8-4ab4dd095faa","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679757.3838058} 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":"66a293c39d226dc129fdc6397875882b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83e676d2-4fe6-43fa-8fb4-0434b28570bd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"7a1ea57e-7965-44e4-840c-a903c8e92f2c","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679757.3941429} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2f308724-1b41-4f39-9e0b-f0a3d5266e42","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679757.3943624} 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":"66a293c39d226dc129fdc6397875882b"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83e676d2-4fe6-43fa-8fb4-0434b28570bd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83e676d2-4fe6-43fa-8fb4-0434b28570bd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:57.394100930Z"}]},"request_id":"0e4e12cd-f273-4388-b018-ed6af60b90c1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679757.3991086} 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":"66a293c39d226dc129fdc6397875882b"},"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":"06/Jun/2024:13:15:57 +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":"66a293c39d226dc129fdc6397875882b"} device-1 | {"level":"info","message":"POST /devices? 201 42ms","method":"POST","requestID":"66a293c39d226dc129fdc6397875882b","responseTime":42,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1N30.Uud2kfuYZbBJ70u6JEb70RgFSC6RLJNcAlb937HERmM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"00d3b9603aa342f1c5751dca9c3c6fa2","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":442,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:57Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":442,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.960582,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:57Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679757,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1N30.Uud2kfuYZbBJ70u6JEb70RgFSC6RLJNcAlb937HERmM"} 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":"00d3b9603aa342f1c5751dca9c3c6fa2"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f32a894-e79b-422b-8195-4fffc632fcc2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"856a13e5-a8e8-4a97-8969-caa508d9b1a6","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679757.4231281} 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":"00d3b9603aa342f1c5751dca9c3c6fa2"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"12b84759-befc-47f1-b4ba-2d71ed64e6a4","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679757.42797} 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":"00d3b9603aa342f1c5751dca9c3c6fa2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f32a894-e79b-422b-8195-4fffc632fcc2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"26b83e39-840d-4b62-8ca0-ffd52dde9d1c","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679757.4440656} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cf701347-35eb-4e13-8b38-2cfb98b3a681","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679757.4443324} 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":"00d3b9603aa342f1c5751dca9c3c6fa2"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f32a894-e79b-422b-8195-4fffc632fcc2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f32a894-e79b-422b-8195-4fffc632fcc2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:57.444043943Z"}]},"request_id":"b1ad9145-2830-4c2b-9d6d-65abfaa6d558","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679757.4482682} 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":"00d3b9603aa342f1c5751dca9c3c6fa2"},"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":"06/Jun/2024:13:15:57 +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":"00d3b9603aa342f1c5751dca9c3c6fa2"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"00d3b9603aa342f1c5751dca9c3c6fa2","responseTime":43,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1N30.Uud2kfuYZbBJ70u6JEb70RgFSC6RLJNcAlb937HERmM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"de0dd756a431d6444b3e602abf5f8a23","responseTime":4,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1N30.Uud2kfuYZbBJ70u6JEb70RgFSC6RLJNcAlb937HERmM","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5903953244f823ed290350b3d7ff1203","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":443,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:57Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":443,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.687169,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:57Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5f32a894-e79b-422b-8195-4fffc632fcc2","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/5f32a894-e79b-422b-8195-4fffc632fcc2","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679757,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1N30.Uud2kfuYZbBJ70u6JEb70RgFSC6RLJNcAlb937HERmM"} 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":"de0dd756a431d6444b3e602abf5f8a23"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":444,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:57Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":444,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.101513,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:57Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/83e676d2-4fe6-43fa-8fb4-0434b28570bd","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/83e676d2-4fe6-43fa-8fb4-0434b28570bd","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679757,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1N30.Uud2kfuYZbBJ70u6JEb70RgFSC6RLJNcAlb937HERmM"} 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":"5903953244f823ed290350b3d7ff1203"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f32a894-e79b-422b-8195-4fffc632fcc2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f32a894-e79b-422b-8195-4fffc632fcc2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:57.444043943Z"}]},"request_id":"f2c6e20a-df97-46df-b679-d6917c186f94","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679757.9224212} 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":"de0dd756a431d6444b3e602abf5f8a23"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83e676d2-4fe6-43fa-8fb4-0434b28570bd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83e676d2-4fe6-43fa-8fb4-0434b28570bd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:57.394100930Z"}]},"request_id":"90969298-e5a1-481f-b35e-d8d4076187db","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679757.9234009} 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":"5903953244f823ed290350b3d7ff1203"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bf2c8221-7e8e-4fe7-b77d-525149d82bcf","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679757.9290893} 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":"de0dd756a431d6444b3e602abf5f8a23"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bf739c2c-b411-4b08-895a-007ac000617d","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679757.9314756} 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":"5903953244f823ed290350b3d7ff1203"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83e676d2-4fe6-43fa-8fb4-0434b28570bd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83e676d2-4fe6-43fa-8fb4-0434b28570bd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:57.394100930Z"}]},"request_id":"d61a88cd-dd11-4b6a-88e6-5d1437bceca7","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679757.9394023} 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":"5903953244f823ed290350b3d7ff1203"},"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":"06/Jun/2024:13:15:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/83e676d2-4fe6-43fa-8fb4-0434b28570bd HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.037","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"5903953244f823ed290350b3d7ff1203"} device-1 | {"level":"info","message":"PATCH /devices/83e676d2-4fe6-43fa-8fb4-0434b28570bd 200 32ms","method":"PATCH","requestID":"5903953244f823ed290350b3d7ff1203","responseTime":32,"status":200,"url":"/devices/83e676d2-4fe6-43fa-8fb4-0434b28570bd"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1N30.Uud2kfuYZbBJ70u6JEb70RgFSC6RLJNcAlb937HERmM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"517e89cba78946153f6c58487a781b3c","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f32a894-e79b-422b-8195-4fffc632fcc2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f32a894-e79b-422b-8195-4fffc632fcc2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:57.444043943Z"}]},"request_id":"be1ac133-d0fd-4805-ab78-6ca99e6200b6","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679757.949873} 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":"de0dd756a431d6444b3e602abf5f8a23"},"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":"06/Jun/2024:13:15:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/5f32a894-e79b-422b-8195-4fffc632fcc2 HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.051","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"de0dd756a431d6444b3e602abf5f8a23"} device-1 | {"level":"info","message":"PATCH /devices/5f32a894-e79b-422b-8195-4fffc632fcc2 200 45ms","method":"PATCH","requestID":"de0dd756a431d6444b3e602abf5f8a23","responseTime":45,"status":200,"url":"/devices/5f32a894-e79b-422b-8195-4fffc632fcc2"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":445,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:57Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1N30.Uud2kfuYZbBJ70u6JEb70RgFSC6RLJNcAlb937HERmM","level":"info","message":"auth send jwt"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":445,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.744085,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:57Z"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8a3af717cad627e0d4280e61a6bcfb67","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/83e676d2-4fe6-43fa-8fb4-0434b28570bd","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/83e676d2-4fe6-43fa-8fb4-0434b28570bd","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679757,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1N30.Uud2kfuYZbBJ70u6JEb70RgFSC6RLJNcAlb937HERmM"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket 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":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"517e89cba78946153f6c58487a781b3c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":446,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:57Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":446,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.719068,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:57Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5f32a894-e79b-422b-8195-4fffc632fcc2","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/5f32a894-e79b-422b-8195-4fffc632fcc2","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679757,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1N30.Uud2kfuYZbBJ70u6JEb70RgFSC6RLJNcAlb937HERmM"} 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":"8a3af717cad627e0d4280e61a6bcfb67"},"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":"06/Jun/2024:13:15:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/83e676d2-4fe6-43fa-8fb4-0434b28570bd/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":"517e89cba78946153f6c58487a781b3c"} device-1 | {"level":"info","message":"POST /devices/83e676d2-4fe6-43fa-8fb4-0434b28570bd/websocket 200 16ms","method":"POST","requestID":"517e89cba78946153f6c58487a781b3c","responseTime":16,"status":200,"url":"/devices/83e676d2-4fe6-43fa-8fb4-0434b28570bd/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"06/Jun/2024:13:15:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/5f32a894-e79b-422b-8195-4fffc632fcc2/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.024","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"8a3af717cad627e0d4280e61a6bcfb67"} device-1 | {"level":"info","message":"POST /devices/5f32a894-e79b-422b-8195-4fffc632fcc2/websocket 200 20ms","method":"POST","requestID":"8a3af717cad627e0d4280e61a6bcfb67","responseTime":20,"status":200,"url":"/devices/5f32a894-e79b-422b-8195-4fffc632fcc2/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/83e676d2-4fe6-43fa-8fb4-0434b28570bd' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/5f32a894-e79b-422b-8195-4fffc632fcc2' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OH0.uEcuWojF8q4Dptv6iqxpRKJ0cNalgcZmBoTOA1qgWII","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"393d3c858ca4de3add2b6f306f24e8a5","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":447,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":447,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.811529,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/83e676d2-4fe6-43fa-8fb4-0434b28570bd","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/83e676d2-4fe6-43fa-8fb4-0434b28570bd","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679758,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OH0.uEcuWojF8q4Dptv6iqxpRKJ0cNalgcZmBoTOA1qgWII"} 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":"393d3c858ca4de3add2b6f306f24e8a5"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83e676d2-4fe6-43fa-8fb4-0434b28570bd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83e676d2-4fe6-43fa-8fb4-0434b28570bd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:57.394100930Z"}]},"request_id":"27959a19-151e-4589-a7a3-0b664d98d5c9","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679758.0082648} 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":"393d3c858ca4de3add2b6f306f24e8a5"},"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":"06/Jun/2024:13:15:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/83e676d2-4fe6-43fa-8fb4-0434b28570bd? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"393d3c858ca4de3add2b6f306f24e8a5"} device-1 | {"level":"info","message":"GET /devices/83e676d2-4fe6-43fa-8fb4-0434b28570bd? 200 10ms","method":"GET","requestID":"393d3c858ca4de3add2b6f306f24e8a5","responseTime":10,"status":200,"url":"/devices/83e676d2-4fe6-43fa-8fb4-0434b28570bd?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OH0.uEcuWojF8q4Dptv6iqxpRKJ0cNalgcZmBoTOA1qgWII","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"989cc0c82c28c8ec9994086cf0c333c8","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":448,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":448,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.712844,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5f32a894-e79b-422b-8195-4fffc632fcc2","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/5f32a894-e79b-422b-8195-4fffc632fcc2","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679758,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OH0.uEcuWojF8q4Dptv6iqxpRKJ0cNalgcZmBoTOA1qgWII"} 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":"989cc0c82c28c8ec9994086cf0c333c8"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f32a894-e79b-422b-8195-4fffc632fcc2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f32a894-e79b-422b-8195-4fffc632fcc2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:57.444043943Z"}]},"request_id":"e36f43f6-f4d1-4f17-a9fc-86fbddee51bc","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679758.0220711} 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":"989cc0c82c28c8ec9994086cf0c333c8"},"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":"06/Jun/2024:13:15:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5f32a894-e79b-422b-8195-4fffc632fcc2? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"989cc0c82c28c8ec9994086cf0c333c8"} device-1 | {"level":"info","message":"GET /devices/5f32a894-e79b-422b-8195-4fffc632fcc2? 200 10ms","method":"GET","requestID":"989cc0c82c28c8ec9994086cf0c333c8","responseTime":10,"status":200,"url":"/devices/5f32a894-e79b-422b-8195-4fffc632fcc2?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OH0.uEcuWojF8q4Dptv6iqxpRKJ0cNalgcZmBoTOA1qgWII","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"693ac19b8795b03147198f51a89dfc2b","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:36466","level":"info","msg":"Received request.","req_id":449,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":449,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.130783,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679758,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OH0.uEcuWojF8q4Dptv6iqxpRKJ0cNalgcZmBoTOA1qgWII"} 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":"693ac19b8795b03147198f51a89dfc2b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5694b79-d484-4ec3-9765-31634f756fc4"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5694b79-d484-4ec3-9765-31634f756fc4"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5694b79-d484-4ec3-9765-31634f756fc4"},"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:36466","level":"info","msg":"Received request.","req_id":450,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":450,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.591525,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":451,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/83e676d2-4fe6-43fa-8fb4-0434b28570bd","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/83e676d2-4fe6-43fa-8fb4-0434b28570bd","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679758,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OH0.uEcuWojF8q4Dptv6iqxpRKJ0cNalgcZmBoTOA1qgWII"} 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":"e9aede90-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":451,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.74054,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5f32a894-e79b-422b-8195-4fffc632fcc2","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/5f32a894-e79b-422b-8195-4fffc632fcc2","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679758,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OH0.uEcuWojF8q4Dptv6iqxpRKJ0cNalgcZmBoTOA1qgWII"} 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":"e9af05a0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83e676d2-4fe6-43fa-8fb4-0434b28570bd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83e676d2-4fe6-43fa-8fb4-0434b28570bd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:57.394100930Z"}]},"request_id":"82ff8e5b-fde8-42d4-85d6-c2b1eaa4a5b3","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679758.0806875} 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":"e9aede90-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f32a894-e79b-422b-8195-4fffc632fcc2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f32a894-e79b-422b-8195-4fffc632fcc2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:57.444043943Z"}]},"request_id":"66aaf70c-3810-4948-a0f7-c98e8df970e4","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679758.081201} 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":"e9af05a0-2406-11ef-9563-e3996e819f8c"},"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/83e676d2-4fe6-43fa-8fb4-0434b28570bd? 200 14ms","method":"GET","requestID":"e9aede90-2406-11ef-9563-e3996e819f8c","responseTime":14,"status":200,"url":"/devices/83e676d2-4fe6-43fa-8fb4-0434b28570bd?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/5f32a894-e79b-422b-8195-4fffc632fcc2? 200 14ms","method":"GET","requestID":"e9af05a0-2406-11ef-9563-e3996e819f8c","responseTime":14,"status":200,"url":"/devices/5f32a894-e79b-422b-8195-4fffc632fcc2?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5694b79-d484-4ec3-9765-31634f756fc4"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5694b79-d484-4ec3-9765-31634f756fc4"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5694b79-d484-4ec3-9765-31634f756fc4"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5694b79-d484-4ec3-9765-31634f756fc4"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5694b79-d484-4ec3-9765-31634f756fc4"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5694b79-d484-4ec3-9765-31634f756fc4"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5694b79-d484-4ec3-9765-31634f756fc4"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5694b79-d484-4ec3-9765-31634f756fc4"},"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/e5694b79-d484-4ec3-9765-31634f756fc4"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":452,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":452,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.132575,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":453,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/83e676d2-4fe6-43fa-8fb4-0434b28570bd","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/83e676d2-4fe6-43fa-8fb4-0434b28570bd","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679758,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OH0.uEcuWojF8q4Dptv6iqxpRKJ0cNalgcZmBoTOA1qgWII"} 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":"e9b8c9a0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":453,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.245515,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5f32a894-e79b-422b-8195-4fffc632fcc2","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/5f32a894-e79b-422b-8195-4fffc632fcc2","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679758,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OH0.uEcuWojF8q4Dptv6iqxpRKJ0cNalgcZmBoTOA1qgWII"} 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":"e9b917c0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83e676d2-4fe6-43fa-8fb4-0434b28570bd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83e676d2-4fe6-43fa-8fb4-0434b28570bd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:57.394100930Z"}]},"request_id":"913349d1-f3b9-41be-8a38-0da8dbd46911","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679758.1534371} 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":"e9b8c9a0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f32a894-e79b-422b-8195-4fffc632fcc2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f32a894-e79b-422b-8195-4fffc632fcc2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:57.444043943Z"}]},"request_id":"cd8e5cb8-49a2-4347-a8da-907ca8d60a4e","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679758.1550581} 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":"e9b917c0-2406-11ef-9563-e3996e819f8c"},"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/83e676d2-4fe6-43fa-8fb4-0434b28570bd? 200 24ms","method":"GET","requestID":"e9b8c9a0-2406-11ef-9563-e3996e819f8c","responseTime":24,"status":200,"url":"/devices/83e676d2-4fe6-43fa-8fb4-0434b28570bd?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/5f32a894-e79b-422b-8195-4fffc632fcc2? 200 24ms","method":"GET","requestID":"e9b917c0-2406-11ef-9563-e3996e819f8c","responseTime":24,"status":200,"url":"/devices/5f32a894-e79b-422b-8195-4fffc632fcc2?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe5694b79-d484-4ec3-9765-31634f756fc4#owner@http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe5694b79-d484-4ec3-9765-31634f756fc4","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"2d362b92-8fbe-44a2-90f4-03c428314ded","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679758.1698248} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f52d7732-909d-4d32-9b1a-b7efc96feb91","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679758.170319} authorization-1 | {"level":"info","message":"POST /relations/update 200 28ms","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":"693ac19b8795b03147198f51a89dfc2b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":28}} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":454,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":454,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.068012,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/83e676d2-4fe6-43fa-8fb4-0434b28570bd","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/83e676d2-4fe6-43fa-8fb4-0434b28570bd","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e9bd5d80-2406-11ef-9563-e3996e819f8c"},"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/83e676d2-4fe6-43fa-8fb4-0434b28570bd/signaling 200 15ms","method":"POST","requestID":"e9bd5d80-2406-11ef-9563-e3996e819f8c","responseTime":15,"status":200,"url":"/devices/83e676d2-4fe6-43fa-8fb4-0434b28570bd/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/e5694b79-d484-4ec3-9765-31634f756fc4","user":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"06/Jun/2024:13:15:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1219","request_time":"0.163","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"693ac19b8795b03147198f51a89dfc2b"} experiment-1 | {"level":"info","message":"POST /experiments? 201 159ms","method":"POST","requestID":"693ac19b8795b03147198f51a89dfc2b","responseTime":159,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":455,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":455,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":2.744494,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/5f32a894-e79b-422b-8195-4fffc632fcc2","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5f32a894-e79b-422b-8195-4fffc632fcc2","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OH0.uEcuWojF8q4Dptv6iqxpRKJ0cNalgcZmBoTOA1qgWII","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"3bedbdd55c99aca0e71bacf84f1179a1","responseTime":5,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e9c06ac0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/5f32a894-e79b-422b-8195-4fffc632fcc2/signaling 200 14ms","method":"POST","requestID":"e9c06ac0-2406-11ef-9563-e3996e819f8c","responseTime":14,"status":200,"url":"/devices/5f32a894-e79b-422b-8195-4fffc632fcc2/signaling"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":456,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":456,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.296448,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:58Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5694b79-d484-4ec3-9765-31634f756fc4"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5694b79-d484-4ec3-9765-31634f756fc4"},"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":"eeff607b-8e8c-4b2f-a3ad-77b20308ee35"},{"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":"b3864f84-2555-4123-ad11-e641fb21c1a9"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"e7043c34-1b05-46e7-8cd8-ea0b5c58ec70"}]},"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/83e676d2-4fe6-43fa-8fb4-0434b28570bd"},{"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/5f32a894-e79b-422b-8195-4fffc632fcc2"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/83e676d2-4fe6-43fa-8fb4-0434b28570bd","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/83e676d2-4fe6-43fa-8fb4-0434b28570bd","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679758,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OH0.uEcuWojF8q4Dptv6iqxpRKJ0cNalgcZmBoTOA1qgWII"} 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":"3bedbdd55c99aca0e71bacf84f1179a1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} 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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83e676d2-4fe6-43fa-8fb4-0434b28570bd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83e676d2-4fe6-43fa-8fb4-0434b28570bd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:57.394100930Z"}]},"request_id":"f5253574-5554-49cc-aff0-e1d967029794","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679758.2094402} 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":"3bedbdd55c99aca0e71bacf84f1179a1"},"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:36466","level":"info","msg":"Received request.","req_id":457,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":457,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.366088,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679758,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OH0.uEcuWojF8q4Dptv6iqxpRKJ0cNalgcZmBoTOA1qgWII"} 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":"e9c350f0-2406-11ef-9563-e3996e819f8c"},"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":"06/Jun/2024:13:15:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/83e676d2-4fe6-43fa-8fb4-0434b28570bd? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.026","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3bedbdd55c99aca0e71bacf84f1179a1"} device-1 | {"level":"info","message":"GET /devices/83e676d2-4fe6-43fa-8fb4-0434b28570bd? 200 18ms","method":"GET","requestID":"3bedbdd55c99aca0e71bacf84f1179a1","responseTime":18,"status":200,"url":"/devices/83e676d2-4fe6-43fa-8fb4-0434b28570bd?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OH0.uEcuWojF8q4Dptv6iqxpRKJ0cNalgcZmBoTOA1qgWII","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"ea64ee514c1069bbdbbe8c90290bcc19","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"12149770-a988-4a93-a139-40ecb91a22e9","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679758.2269998} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"79a7161f-4d6e-4096-a7a1-3f4006592bbd","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679758.2275925} 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":"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":"e9c350f0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":458,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":458,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.958583,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5f32a894-e79b-422b-8195-4fffc632fcc2","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/5f32a894-e79b-422b-8195-4fffc632fcc2","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679758,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OH0.uEcuWojF8q4Dptv6iqxpRKJ0cNalgcZmBoTOA1qgWII"} 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":"ea64ee514c1069bbdbbe8c90290bcc19"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f32a894-e79b-422b-8195-4fffc632fcc2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5f32a894-e79b-422b-8195-4fffc632fcc2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:57.444043943Z"}]},"request_id":"3c2be02d-3f98-421c-9555-1eca7b2e9d47","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679758.2373753} 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":"ea64ee514c1069bbdbbe8c90290bcc19"},"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/f01d5347-d0bc-41a3-87cb-4109e5685e33'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/f01d5347-d0bc-41a3-87cb-4109e5685e33'"} 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":"e9c350f0-2406-11ef-9563-e3996e819f8c","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":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"06/Jun/2024:13:15:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5f32a894-e79b-422b-8195-4fffc632fcc2? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.030","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ea64ee514c1069bbdbbe8c90290bcc19"} device-1 | {"level":"info","message":"GET /devices/5f32a894-e79b-422b-8195-4fffc632fcc2? 200 24ms","method":"GET","requestID":"ea64ee514c1069bbdbbe8c90290bcc19","responseTime":24,"status":200,"url":"/devices/5f32a894-e79b-422b-8195-4fffc632fcc2?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"f01d5347-d0bc-41a3-87cb-4109e5685e33","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5694b79-d484-4ec3-9765-31634f756fc4"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"data":{"peerconnection":"f01d5347-d0bc-41a3-87cb-4109e5685e33","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/f01d5347-d0bc-41a3-87cb-4109e5685e33' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"f01d5347-d0bc-41a3-87cb-4109e5685e33","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d2d0490e25e1ff26f8f3a5b250de57f0","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/83e676d2-4fe6-43fa-8fb4-0434b28570bd"},{"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/5f32a894-e79b-422b-8195-4fffc632fcc2"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/f01d5347-d0bc-41a3-87cb-4109e5685e33"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"d2d0490e25e1ff26f8f3a5b250de57f0","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"d2d0490e25e1ff26f8f3a5b250de57f0"} device-1 | {"data":{"peerconnection":"f01d5347-d0bc-41a3-87cb-4109e5685e33","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"f01d5347-d0bc-41a3-87cb-4109e5685e33","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/f01d5347-d0bc-41a3-87cb-4109e5685e33' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"f01d5347-d0bc-41a3-87cb-4109e5685e33","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"5dd97af78e5d71fefaa8397ef230c3ec","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/83e676d2-4fe6-43fa-8fb4-0434b28570bd"},{"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/5f32a894-e79b-422b-8195-4fffc632fcc2"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/f01d5347-d0bc-41a3-87cb-4109e5685e33"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":459,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","contextual_tuples":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ff01d5347-d0bc-41a3-87cb-4109e5685e33","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"00ff3333-5f2b-4d71-aa78-363edf68574c","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679758.3513048} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":459,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.790196,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/f01d5347-d0bc-41a3-87cb-4109e5685e33","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/f01d5347-d0bc-41a3-87cb-4109e5685e33","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":"e9d83880-2406-11ef-9563-e3996e819f8c"},"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/f01d5347-d0bc-41a3-87cb-4109e5685e33 200 13ms","method":"GET","requestID":"e9d83880-2406-11ef-9563-e3996e819f8c","responseTime":13,"status":200,"url":"/peerconnections/f01d5347-d0bc-41a3-87cb-4109e5685e33"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 37ms","method":"POST","requestID":"5dd97af78e5d71fefaa8397ef230c3ec","responseTime":37,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch","requestID":"5dd97af78e5d71fefaa8397ef230c3ec"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OH0.uEcuWojF8q4Dptv6iqxpRKJ0cNalgcZmBoTOA1qgWII","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"e9fa4f1ef5648da689d2f399f446d271","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/e5694b79-d484-4ec3-9765-31634f756fc4"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":460,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":460,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.228418,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/e5694b79-d484-4ec3-9765-31634f756fc4","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/e5694b79-d484-4ec3-9765-31634f756fc4","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679758,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OH0.uEcuWojF8q4Dptv6iqxpRKJ0cNalgcZmBoTOA1qgWII"} 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":"e9fa4f1ef5648da689d2f399f446d271"},"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/e5694b79-d484-4ec3-9765-31634f756fc4"} experiment-1 | {"level":"info","message":"GET /experiments/e5694b79-d484-4ec3-9765-31634f756fc4 200 17ms","method":"GET","requestID":"e9fa4f1ef5648da689d2f399f446d271","responseTime":17,"status":200,"url":"/experiments/e5694b79-d484-4ec3-9765-31634f756fc4"} gateway-1 | {"time_local":"06/Jun/2024:13:15:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/e5694b79-d484-4ec3-9765-31634f756fc4 HTTP/1.1","status": "200","body_bytes_sent":"1292","request_time":"0.024","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e9fa4f1ef5648da689d2f399f446d271"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OH0.uEcuWojF8q4Dptv6iqxpRKJ0cNalgcZmBoTOA1qgWII","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"079570a1a0cd9d74f2f9db3dbb77db65","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/e5694b79-d484-4ec3-9765-31634f756fc4"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":461,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":461,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.14606,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/e5694b79-d484-4ec3-9765-31634f756fc4","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/e5694b79-d484-4ec3-9765-31634f756fc4","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679758,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OH0.uEcuWojF8q4Dptv6iqxpRKJ0cNalgcZmBoTOA1qgWII"} 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":"079570a1a0cd9d74f2f9db3dbb77db65"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5694b79-d484-4ec3-9765-31634f756fc4"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":462,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":462,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.337636,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/f01d5347-d0bc-41a3-87cb-4109e5685e33","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:http://localhost/peerconnections/f01d5347-d0bc-41a3-87cb-4109e5685e33","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679758,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OH0.uEcuWojF8q4Dptv6iqxpRKJ0cNalgcZmBoTOA1qgWII"} 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":"e9ebc080-2406-11ef-9563-e3996e819f8c"},"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/f01d5347-d0bc-41a3-87cb-4109e5685e33' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/f01d5347-d0bc-41a3-87cb-4109e5685e33' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"f01d5347-d0bc-41a3-87cb-4109e5685e33","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"9c082a80c1e98da382502b14bc2d86c9","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"closed","url":"http://localhost/devices/83e676d2-4fe6-43fa-8fb4-0434b28570bd"},{"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/5f32a894-e79b-422b-8195-4fffc632fcc2"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/f01d5347-d0bc-41a3-87cb-4109e5685e33"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d55f7fbcbb5948b1a6d998fa4d98d214","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/83e676d2-4fe6-43fa-8fb4-0434b28570bd"},{"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/5f32a894-e79b-422b-8195-4fffc632fcc2"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/f01d5347-d0bc-41a3-87cb-4109e5685e33"}}},"level":"info","message":"received a callback"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ff01d5347-d0bc-41a3-87cb-4109e5685e33': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ff01d5347-d0bc-41a3-87cb-4109e5685e33","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"f1de9a63-c6c6-4203-9cae-ff054e73bd34","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679758.503366} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4501cfda-72f8-46ce-9df3-c8d46ec68783","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679758.5040777} 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":"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":"e9ebc080-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":17}} device-1 | {"data":{"peerconnection":"f01d5347-d0bc-41a3-87cb-4109e5685e33","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/f01d5347-d0bc-41a3-87cb-4109e5685e33 204 49ms","method":"DELETE","requestID":"e9ebc080-2406-11ef-9563-e3996e819f8c","responseTime":49,"status":204,"url":"/peerconnections/f01d5347-d0bc-41a3-87cb-4109e5685e33"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e5694b79-d484-4ec3-9765-31634f756fc4"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe5694b79-d484-4ec3-9765-31634f756fc4': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe5694b79-d484-4ec3-9765-31634f756fc4","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"1ceb9793-6bbe-402b-9170-d79a93dfc07f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679758.5550046} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ee5800c4-6f7b-44c0-bd15-84891e7f8eaf","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679758.5551915} 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":"079570a1a0cd9d74f2f9db3dbb77db65"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/e5694b79-d484-4ec3-9765-31634f756fc4"} gateway-1 | {"time_local":"06/Jun/2024:13:15:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/e5694b79-d484-4ec3-9765-31634f756fc4 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":"079570a1a0cd9d74f2f9db3dbb77db65"} experiment-1 | {"level":"info","message":"DELETE /experiments/e5694b79-d484-4ec3-9765-31634f756fc4 204 171ms","method":"DELETE","requestID":"079570a1a0cd9d74f2f9db3dbb77db65","responseTime":171,"status":204,"url":"/experiments/e5694b79-d484-4ec3-9765-31634f756fc4"} gateway-1 | {"time_local":"06/Jun/2024:13:15:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1722","request_time":"0.645","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"673bfb132089c11fd67f0830ce51ce69"} gateway-1 | {"time_local":"06/Jun/2024:13:15:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1724","request_time":"0.654","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"26afafffa7ba8dfca7cb8771564806fe"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 130ms","method":"POST","requestID":"9c082a80c1e98da382502b14bc2d86c9","responseTime":130,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.136","http_referrer":"","http_user_agent":"node-fetch","requestID":"9c082a80c1e98da382502b14bc2d86c9"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 129ms","method":"POST","requestID":"d55f7fbcbb5948b1a6d998fa4d98d214","responseTime":129,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.133","http_referrer":"","http_user_agent":"node-fetch","requestID":"d55f7fbcbb5948b1a6d998fa4d98d214"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OH0.uEcuWojF8q4Dptv6iqxpRKJ0cNalgcZmBoTOA1qgWII","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ae4eb7b03603311c5dfd697ac94b5ad3","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/83e676d2-4fe6-43fa-8fb4-0434b28570bd' closed"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":463,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":463,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.089824,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679758,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OH0.uEcuWojF8q4Dptv6iqxpRKJ0cNalgcZmBoTOA1qgWII"} 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":"ae4eb7b03603311c5dfd697ac94b5ad3"},"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/5f32a894-e79b-422b-8195-4fffc632fcc2' 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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca1cf61f-6134-486f-b877-9dafa91493c0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"dba3e77e-c969-4d3a-8ff6-0f5997c5a950","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679758.659781} 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":"ae4eb7b03603311c5dfd697ac94b5ad3"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5594d86f-d9fc-4a36-8a66-d960f04b14f0","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679758.6674314} 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":"ae4eb7b03603311c5dfd697ac94b5ad3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca1cf61f-6134-486f-b877-9dafa91493c0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"1c48c1f8-cced-4d49-a7bd-b05bf122da9a","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679758.6781256} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a12a0977-69b2-4234-a27f-e26c43d1e8ff","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679758.6782904} 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":"ae4eb7b03603311c5dfd697ac94b5ad3"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca1cf61f-6134-486f-b877-9dafa91493c0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca1cf61f-6134-486f-b877-9dafa91493c0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:58.678088192Z"}]},"request_id":"aa66d6fe-1f15-4389-a74f-15815bd5ebae","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679758.6841311} 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":"ae4eb7b03603311c5dfd697ac94b5ad3"},"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":"06/Jun/2024:13:15:58 +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":"ae4eb7b03603311c5dfd697ac94b5ad3"} device-1 | {"level":"info","message":"POST /devices? 201 51ms","method":"POST","requestID":"ae4eb7b03603311c5dfd697ac94b5ad3","responseTime":51,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OH0.uEcuWojF8q4Dptv6iqxpRKJ0cNalgcZmBoTOA1qgWII","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c9d2cf0bd3cd0c8d81f1b7a247519920","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":464,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":464,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.766232,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:58Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679758,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OH0.uEcuWojF8q4Dptv6iqxpRKJ0cNalgcZmBoTOA1qgWII"} 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":"c9d2cf0bd3cd0c8d81f1b7a247519920"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff7d83d3c-81d5-49fb-b09f-5380d4062386","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"966ff6ca-68e2-413e-a73f-f1ad3d9e9c57","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679758.711156} 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":"c9d2cf0bd3cd0c8d81f1b7a247519920"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8179538e-3f44-4d06-91cc-cd1e3c0cc6c1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679758.7166343} 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":"c9d2cf0bd3cd0c8d81f1b7a247519920"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff7d83d3c-81d5-49fb-b09f-5380d4062386","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"8f93301f-8a11-4221-9c33-03f63a616f72","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679758.7330863} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ab8484be-18f2-44d4-9ec2-adaf668c3400","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679758.7333112} 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":"c9d2cf0bd3cd0c8d81f1b7a247519920"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff7d83d3c-81d5-49fb-b09f-5380d4062386","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff7d83d3c-81d5-49fb-b09f-5380d4062386","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:58.733062211Z"}]},"request_id":"77c64b2c-2319-460b-b01d-2039a75d3f84","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679758.738326} 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":"c9d2cf0bd3cd0c8d81f1b7a247519920"},"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":"06/Jun/2024:13:15:58 +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":"c9d2cf0bd3cd0c8d81f1b7a247519920"} device-1 | {"level":"info","message":"POST /devices? 201 46ms","method":"POST","requestID":"c9d2cf0bd3cd0c8d81f1b7a247519920","responseTime":46,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"558ba95de0b5f4629d788a49fef53236","responseTime":4,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ac4590de9968aeb276d5311d9c760b7f","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":465,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":465,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.941879,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":466,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ca1cf61f-6134-486f-b877-9dafa91493c0","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/ca1cf61f-6134-486f-b877-9dafa91493c0","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679759,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo"} 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":"558ba95de0b5f4629d788a49fef53236"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":466,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.738973,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f7d83d3c-81d5-49fb-b09f-5380d4062386","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/f7d83d3c-81d5-49fb-b09f-5380d4062386","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679759,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo"} 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":"ac4590de9968aeb276d5311d9c760b7f"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca1cf61f-6134-486f-b877-9dafa91493c0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca1cf61f-6134-486f-b877-9dafa91493c0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:58.678088192Z"}]},"request_id":"909e7b83-7e18-4dbb-84ec-caed67270c50","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.2071044} 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":"558ba95de0b5f4629d788a49fef53236"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff7d83d3c-81d5-49fb-b09f-5380d4062386","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff7d83d3c-81d5-49fb-b09f-5380d4062386","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:58.733062211Z"}]},"request_id":"d0b3f967-d108-4b68-be2f-082dcd08f44c","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.2079163} 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":"ac4590de9968aeb276d5311d9c760b7f"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0636e396-7f3a-4444-aec0-8e41d4130731","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.2121994} 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":"558ba95de0b5f4629d788a49fef53236"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"89d9316a-8490-45a0-a253-840e9216bffa","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.213576} 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":"ac4590de9968aeb276d5311d9c760b7f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff7d83d3c-81d5-49fb-b09f-5380d4062386","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff7d83d3c-81d5-49fb-b09f-5380d4062386","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:58.733062211Z"}]},"request_id":"03f35a61-77fe-4bc9-8b93-baaafbdd1384","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.2164571} 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":"ac4590de9968aeb276d5311d9c760b7f"},"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":"06/Jun/2024:13:15:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/f7d83d3c-81d5-49fb-b09f-5380d4062386 HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.027","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"ac4590de9968aeb276d5311d9c760b7f"} device-1 | {"level":"info","message":"PATCH /devices/f7d83d3c-81d5-49fb-b09f-5380d4062386 200 20ms","method":"PATCH","requestID":"ac4590de9968aeb276d5311d9c760b7f","responseTime":20,"status":200,"url":"/devices/f7d83d3c-81d5-49fb-b09f-5380d4062386"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a26327016e336988d053a3b1ee51f3ce","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":467,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":467,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.674129,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f7d83d3c-81d5-49fb-b09f-5380d4062386","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/f7d83d3c-81d5-49fb-b09f-5380d4062386","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679759,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo"} 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":"a26327016e336988d053a3b1ee51f3ce"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca1cf61f-6134-486f-b877-9dafa91493c0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca1cf61f-6134-486f-b877-9dafa91493c0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:58.678088192Z"}]},"request_id":"3bd66e83-b40c-47e5-9773-b734e3830c25","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.228321} 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":"558ba95de0b5f4629d788a49fef53236"},"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/ca1cf61f-6134-486f-b877-9dafa91493c0 200 35ms","method":"PATCH","requestID":"558ba95de0b5f4629d788a49fef53236","responseTime":35,"status":200,"url":"/devices/ca1cf61f-6134-486f-b877-9dafa91493c0"} gateway-1 | {"time_local":"06/Jun/2024:13:15:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/ca1cf61f-6134-486f-b877-9dafa91493c0 HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.040","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"558ba95de0b5f4629d788a49fef53236"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"9e44fa5b827015ea2b7c478bf3212bc2","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":468,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":468,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.10821,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ca1cf61f-6134-486f-b877-9dafa91493c0","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/ca1cf61f-6134-486f-b877-9dafa91493c0","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679759,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo"} 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":"9e44fa5b827015ea2b7c478bf3212bc2"},"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":"06/Jun/2024:13:15:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/f7d83d3c-81d5-49fb-b09f-5380d4062386/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":"a26327016e336988d053a3b1ee51f3ce"} device-1 | {"level":"info","message":"POST /devices/f7d83d3c-81d5-49fb-b09f-5380d4062386/websocket 200 19ms","method":"POST","requestID":"a26327016e336988d053a3b1ee51f3ce","responseTime":19,"status":200,"url":"/devices/f7d83d3c-81d5-49fb-b09f-5380d4062386/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"06/Jun/2024:13:15:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/ca1cf61f-6134-486f-b877-9dafa91493c0/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.019","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"9e44fa5b827015ea2b7c478bf3212bc2"} device-1 | {"level":"info","message":"POST /devices/ca1cf61f-6134-486f-b877-9dafa91493c0/websocket 200 15ms","method":"POST","requestID":"9e44fa5b827015ea2b7c478bf3212bc2","responseTime":15,"status":200,"url":"/devices/ca1cf61f-6134-486f-b877-9dafa91493c0/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/f7d83d3c-81d5-49fb-b09f-5380d4062386' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/ca1cf61f-6134-486f-b877-9dafa91493c0' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"eacc09e9e2d900c053c2c68bfdde120d","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":469,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":469,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.000653,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ca1cf61f-6134-486f-b877-9dafa91493c0","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/ca1cf61f-6134-486f-b877-9dafa91493c0","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679759,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo"} 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":"eacc09e9e2d900c053c2c68bfdde120d"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca1cf61f-6134-486f-b877-9dafa91493c0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca1cf61f-6134-486f-b877-9dafa91493c0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:58.678088192Z"}]},"request_id":"b7eb810c-8e31-4766-8356-df621b9a85b5","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.2836359} 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":"eacc09e9e2d900c053c2c68bfdde120d"},"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/ca1cf61f-6134-486f-b877-9dafa91493c0? 200 13ms","method":"GET","requestID":"eacc09e9e2d900c053c2c68bfdde120d","responseTime":13,"status":200,"url":"/devices/ca1cf61f-6134-486f-b877-9dafa91493c0?"} gateway-1 | {"time_local":"06/Jun/2024:13:15:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ca1cf61f-6134-486f-b877-9dafa91493c0? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"eacc09e9e2d900c053c2c68bfdde120d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"1850811cd07d890771522a2943114ae1","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":470,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":470,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.683621,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f7d83d3c-81d5-49fb-b09f-5380d4062386","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/f7d83d3c-81d5-49fb-b09f-5380d4062386","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679759,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo"} 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":"1850811cd07d890771522a2943114ae1"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff7d83d3c-81d5-49fb-b09f-5380d4062386","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff7d83d3c-81d5-49fb-b09f-5380d4062386","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:58.733062211Z"}]},"request_id":"5018f2e5-3da9-4512-876e-f8377ab31f7c","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.3011932} 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":"1850811cd07d890771522a2943114ae1"},"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":"06/Jun/2024:13:15:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f7d83d3c-81d5-49fb-b09f-5380d4062386? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1850811cd07d890771522a2943114ae1"} device-1 | {"level":"info","message":"GET /devices/f7d83d3c-81d5-49fb-b09f-5380d4062386? 200 12ms","method":"GET","requestID":"1850811cd07d890771522a2943114ae1","responseTime":12,"status":200,"url":"/devices/f7d83d3c-81d5-49fb-b09f-5380d4062386?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d5f8632635259e52f5cfee58ba0e757c","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:36466","level":"info","msg":"Received request.","req_id":471,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":471,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.945736,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679759,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo"} 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":"d5f8632635259e52f5cfee58ba0e757c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3f613aa3-2978-41d2-86c5-60676b1857d7"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3f613aa3-2978-41d2-86c5-60676b1857d7"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3f613aa3-2978-41d2-86c5-60676b1857d7"},"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:36466","level":"info","msg":"Received request.","req_id":472,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":472,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.651222,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ca1cf61f-6134-486f-b877-9dafa91493c0","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/ca1cf61f-6134-486f-b877-9dafa91493c0","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679759,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo"} 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":"ea719250-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":473,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":473,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.63507,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f7d83d3c-81d5-49fb-b09f-5380d4062386","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/f7d83d3c-81d5-49fb-b09f-5380d4062386","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679759,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo"} 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":"ea71b960-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca1cf61f-6134-486f-b877-9dafa91493c0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca1cf61f-6134-486f-b877-9dafa91493c0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:58.678088192Z"}]},"request_id":"e8c2ecd6-4517-4c6a-b715-526b6a5f0971","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.357302} 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":"ea719250-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff7d83d3c-81d5-49fb-b09f-5380d4062386","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff7d83d3c-81d5-49fb-b09f-5380d4062386","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:58.733062211Z"}]},"request_id":"bd18f9c3-5bf6-4895-8285-26c0b4e17b4a","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.3578794} 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":"ea71b960-2406-11ef-9563-e3996e819f8c"},"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/ca1cf61f-6134-486f-b877-9dafa91493c0? 200 15ms","method":"GET","requestID":"ea719250-2406-11ef-9563-e3996e819f8c","responseTime":15,"status":200,"url":"/devices/ca1cf61f-6134-486f-b877-9dafa91493c0?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f7d83d3c-81d5-49fb-b09f-5380d4062386? 200 14ms","method":"GET","requestID":"ea71b960-2406-11ef-9563-e3996e819f8c","responseTime":14,"status":200,"url":"/devices/f7d83d3c-81d5-49fb-b09f-5380d4062386?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3f613aa3-2978-41d2-86c5-60676b1857d7"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3f613aa3-2978-41d2-86c5-60676b1857d7"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3f613aa3-2978-41d2-86c5-60676b1857d7"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3f613aa3-2978-41d2-86c5-60676b1857d7"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3f613aa3-2978-41d2-86c5-60676b1857d7"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3f613aa3-2978-41d2-86c5-60676b1857d7"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3f613aa3-2978-41d2-86c5-60676b1857d7"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3f613aa3-2978-41d2-86c5-60676b1857d7"},"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/3f613aa3-2978-41d2-86c5-60676b1857d7"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":474,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":474,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.192081,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":475,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ca1cf61f-6134-486f-b877-9dafa91493c0","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/ca1cf61f-6134-486f-b877-9dafa91493c0","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679759,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo"} 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":"ea79a8a0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":475,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.060118,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f7d83d3c-81d5-49fb-b09f-5380d4062386","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/f7d83d3c-81d5-49fb-b09f-5380d4062386","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679759,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo"} 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":"ea79f6c0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca1cf61f-6134-486f-b877-9dafa91493c0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca1cf61f-6134-486f-b877-9dafa91493c0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:58.678088192Z"}]},"request_id":"f09f198e-63d7-40c8-b3ba-105faa41e765","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.418778} 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":"ea79a8a0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff7d83d3c-81d5-49fb-b09f-5380d4062386","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff7d83d3c-81d5-49fb-b09f-5380d4062386","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:58.733062211Z"}]},"request_id":"747810f8-3f1a-4a47-8d97-a3f601cbc7c8","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.419963} 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":"ea79f6c0-2406-11ef-9563-e3996e819f8c"},"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/ca1cf61f-6134-486f-b877-9dafa91493c0? 200 26ms","method":"GET","requestID":"ea79a8a0-2406-11ef-9563-e3996e819f8c","responseTime":26,"status":200,"url":"/devices/ca1cf61f-6134-486f-b877-9dafa91493c0?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f7d83d3c-81d5-49fb-b09f-5380d4062386? 200 25ms","method":"GET","requestID":"ea79f6c0-2406-11ef-9563-e3996e819f8c","responseTime":25,"status":200,"url":"/devices/f7d83d3c-81d5-49fb-b09f-5380d4062386?"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3f613aa3-2978-41d2-86c5-60676b1857d7#owner@http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3f613aa3-2978-41d2-86c5-60676b1857d7","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"1d8f667b-d1cf-4420-8e25-3aedaeb6b7d0","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.4326608} 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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"23ab7bff-1544-49fd-8443-2aded3ced7f4","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.4331465} 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":"d5f8632635259e52f5cfee58ba0e757c"},"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:36466","level":"info","msg":"Received request.","req_id":476,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":476,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.266614,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/ca1cf61f-6134-486f-b877-9dafa91493c0","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ca1cf61f-6134-486f-b877-9dafa91493c0","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ea7e6390-2406-11ef-9563-e3996e819f8c"},"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/ca1cf61f-6134-486f-b877-9dafa91493c0/signaling 200 12ms","method":"POST","requestID":"ea7e6390-2406-11ef-9563-e3996e819f8c","responseTime":12,"status":200,"url":"/devices/ca1cf61f-6134-486f-b877-9dafa91493c0/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/3f613aa3-2978-41d2-86c5-60676b1857d7","user":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"level":"info","message":"POST /experiments? 201 138ms","method":"POST","requestID":"d5f8632635259e52f5cfee58ba0e757c","responseTime":138,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"06/Jun/2024:13:15:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1219","request_time":"0.143","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d5f8632635259e52f5cfee58ba0e757c"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":477,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":477,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.122632,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/f7d83d3c-81d5-49fb-b09f-5380d4062386","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f7d83d3c-81d5-49fb-b09f-5380d4062386","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ea80ad80-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"7d77bb48efcc395e6266b71fd2204b22","responseTime":6,"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/f7d83d3c-81d5-49fb-b09f-5380d4062386/signaling 200 14ms","method":"POST","requestID":"ea80ad80-2406-11ef-9563-e3996e819f8c","responseTime":14,"status":200,"url":"/devices/f7d83d3c-81d5-49fb-b09f-5380d4062386/signaling"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":478,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:59Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3f613aa3-2978-41d2-86c5-60676b1857d7"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3f613aa3-2978-41d2-86c5-60676b1857d7"},"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":"85f0d193-7328-477c-9393-2397d820df68"},{"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":"ae0adc0b-509b-42de-8e72-2ebb7a9dbd63"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"1a8b92ef-ab8d-4ac3-aeec-bc6c893bb4a0"}]},"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/ca1cf61f-6134-486f-b877-9dafa91493c0"},{"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/f7d83d3c-81d5-49fb-b09f-5380d4062386"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":478,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.980736,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ca1cf61f-6134-486f-b877-9dafa91493c0","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/ca1cf61f-6134-486f-b877-9dafa91493c0","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679759,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo"} 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":"7d77bb48efcc395e6266b71fd2204b22"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":479,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":479,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.995256,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679759,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo"} 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":"ea834590-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca1cf61f-6134-486f-b877-9dafa91493c0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca1cf61f-6134-486f-b877-9dafa91493c0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:58.678088192Z"}]},"request_id":"8bff50a3-e7e3-4ddb-a643-1c3d4ebafffa","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.470694} 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":"7d77bb48efcc395e6266b71fd2204b22"},"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":"06/Jun/2024:13:15:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ca1cf61f-6134-486f-b877-9dafa91493c0? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.026","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7d77bb48efcc395e6266b71fd2204b22"} device-1 | {"level":"info","message":"GET /devices/ca1cf61f-6134-486f-b877-9dafa91493c0? 200 18ms","method":"GET","requestID":"7d77bb48efcc395e6266b71fd2204b22","responseTime":18,"status":200,"url":"/devices/ca1cf61f-6134-486f-b877-9dafa91493c0?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"9d0db3b92f25ba41491c566e6e2f39fb","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"7d880b2d-a22e-4416-a9e6-0093135c55a0","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.4835658} device-1 | {"level":"info","message":"getDevicesByDeviceId 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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a9fd29d2-f211-4839-b65b-bb902e9d0eb7","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.4841619} 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":"ea834590-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":480,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":480,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.68085,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f7d83d3c-81d5-49fb-b09f-5380d4062386","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/f7d83d3c-81d5-49fb-b09f-5380d4062386","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679759,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo"} 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":"9d0db3b92f25ba41491c566e6e2f39fb"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff7d83d3c-81d5-49fb-b09f-5380d4062386","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff7d83d3c-81d5-49fb-b09f-5380d4062386","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:58.733062211Z"}]},"request_id":"6bbfb3aa-a64c-40e4-be14-e8929b1424cb","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.4920175} 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":"9d0db3b92f25ba41491c566e6e2f39fb"},"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/54c29dbd-603e-4ab2-a9b1-b7105e0367f1'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/54c29dbd-603e-4ab2-a9b1-b7105e0367f1'"} 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":"ea834590-2406-11ef-9563-e3996e819f8c","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":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"06/Jun/2024:13:15:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f7d83d3c-81d5-49fb-b09f-5380d4062386? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.024","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9d0db3b92f25ba41491c566e6e2f39fb"} device-1 | {"level":"info","message":"GET /devices/f7d83d3c-81d5-49fb-b09f-5380d4062386? 200 19ms","method":"GET","requestID":"9d0db3b92f25ba41491c566e6e2f39fb","responseTime":19,"status":200,"url":"/devices/f7d83d3c-81d5-49fb-b09f-5380d4062386?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"54c29dbd-603e-4ab2-a9b1-b7105e0367f1","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"54c29dbd-603e-4ab2-a9b1-b7105e0367f1","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3f613aa3-2978-41d2-86c5-60676b1857d7"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/54c29dbd-603e-4ab2-a9b1-b7105e0367f1' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"54c29dbd-603e-4ab2-a9b1-b7105e0367f1","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"28bd3901fe559729d25d410bbab3c6fe","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/ca1cf61f-6134-486f-b877-9dafa91493c0"},{"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/f7d83d3c-81d5-49fb-b09f-5380d4062386"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/54c29dbd-603e-4ab2-a9b1-b7105e0367f1"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"28bd3901fe559729d25d410bbab3c6fe","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15: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.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"28bd3901fe559729d25d410bbab3c6fe"} device-1 | {"data":{"peerconnection":"54c29dbd-603e-4ab2-a9b1-b7105e0367f1","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"54c29dbd-603e-4ab2-a9b1-b7105e0367f1","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/54c29dbd-603e-4ab2-a9b1-b7105e0367f1' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"54c29dbd-603e-4ab2-a9b1-b7105e0367f1","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"cb653778585f7f0399ca11a1b9e1013c","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/ca1cf61f-6134-486f-b877-9dafa91493c0"},{"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/f7d83d3c-81d5-49fb-b09f-5380d4062386"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/54c29dbd-603e-4ab2-a9b1-b7105e0367f1"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":481,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","contextual_tuples":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F54c29dbd-603e-4ab2-a9b1-b7105e0367f1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2a9ebd01-b2a0-4ea3-9612-3e4b29ad7586","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.5895646} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":481,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.903114,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/54c29dbd-603e-4ab2-a9b1-b7105e0367f1","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/54c29dbd-603e-4ab2-a9b1-b7105e0367f1","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":"ea951fe0-2406-11ef-9563-e3996e819f8c"},"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/54c29dbd-603e-4ab2-a9b1-b7105e0367f1 200 12ms","method":"GET","requestID":"ea951fe0-2406-11ef-9563-e3996e819f8c","responseTime":12,"status":200,"url":"/peerconnections/54c29dbd-603e-4ab2-a9b1-b7105e0367f1"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 32ms","method":"POST","requestID":"cb653778585f7f0399ca11a1b9e1013c","responseTime":32,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15: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.035","http_referrer":"","http_user_agent":"node-fetch","requestID":"cb653778585f7f0399ca11a1b9e1013c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"5af0e9bb921417e774c62ea642f27265","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/3f613aa3-2978-41d2-86c5-60676b1857d7"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":482,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":482,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.185874,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/3f613aa3-2978-41d2-86c5-60676b1857d7","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/3f613aa3-2978-41d2-86c5-60676b1857d7","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679759,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo"} 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":"5af0e9bb921417e774c62ea642f27265"},"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/3f613aa3-2978-41d2-86c5-60676b1857d7"} gateway-1 | {"time_local":"06/Jun/2024:13:15:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/3f613aa3-2978-41d2-86c5-60676b1857d7 HTTP/1.1","status": "200","body_bytes_sent":"1292","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5af0e9bb921417e774c62ea642f27265"} experiment-1 | {"level":"info","message":"GET /experiments/3f613aa3-2978-41d2-86c5-60676b1857d7 200 15ms","method":"GET","requestID":"5af0e9bb921417e774c62ea642f27265","responseTime":15,"status":200,"url":"/experiments/3f613aa3-2978-41d2-86c5-60676b1857d7"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"c374190438ab46e5217bd28191e064c6","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/3f613aa3-2978-41d2-86c5-60676b1857d7"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":483,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":483,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.200587,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/3f613aa3-2978-41d2-86c5-60676b1857d7","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/3f613aa3-2978-41d2-86c5-60676b1857d7","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679759,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo"} 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":"c374190438ab46e5217bd28191e064c6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3f613aa3-2978-41d2-86c5-60676b1857d7"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":484,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":484,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.223343,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/54c29dbd-603e-4ab2-a9b1-b7105e0367f1","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:http://localhost/peerconnections/54c29dbd-603e-4ab2-a9b1-b7105e0367f1","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679759,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo"} 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":"eaa8f600-2406-11ef-9563-e3996e819f8c"},"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/54c29dbd-603e-4ab2-a9b1-b7105e0367f1' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/54c29dbd-603e-4ab2-a9b1-b7105e0367f1' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"54c29dbd-603e-4ab2-a9b1-b7105e0367f1","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F54c29dbd-603e-4ab2-a9b1-b7105e0367f1': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F54c29dbd-603e-4ab2-a9b1-b7105e0367f1","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"25ac7451-7600-48e8-8e1f-546a71d272a2","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.7374458} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7d8e09eaa84dbf268c6bd871d4216553","responseTime":3,"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0245711e-6839-407e-9f4e-16c275923e32","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.7383509} 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/ca1cf61f-6134-486f-b877-9dafa91493c0"},{"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/f7d83d3c-81d5-49fb-b09f-5380d4062386"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/54c29dbd-603e-4ab2-a9b1-b7105e0367f1"}}},"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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"88e39ba4f72352c1754aafbada1b56e7","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":"eaa8f600-2406-11ef-9563-e3996e819f8c"},"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":"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/ca1cf61f-6134-486f-b877-9dafa91493c0"},{"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/f7d83d3c-81d5-49fb-b09f-5380d4062386"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/54c29dbd-603e-4ab2-a9b1-b7105e0367f1"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"54c29dbd-603e-4ab2-a9b1-b7105e0367f1","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/54c29dbd-603e-4ab2-a9b1-b7105e0367f1 204 49ms","method":"DELETE","requestID":"eaa8f600-2406-11ef-9563-e3996e819f8c","responseTime":49,"status":204,"url":"/peerconnections/54c29dbd-603e-4ab2-a9b1-b7105e0367f1"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3f613aa3-2978-41d2-86c5-60676b1857d7"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3f613aa3-2978-41d2-86c5-60676b1857d7': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3f613aa3-2978-41d2-86c5-60676b1857d7","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"75b9a558-bc57-4148-af7e-5098ceee7353","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.7950873} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0fb8c933-349f-46b7-86c1-9b4156dfb030","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.7956717} 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":"c374190438ab46e5217bd28191e064c6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/3f613aa3-2978-41d2-86c5-60676b1857d7"} gateway-1 | {"time_local":"06/Jun/2024:13:15:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/3f613aa3-2978-41d2-86c5-60676b1857d7 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.163","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c374190438ab46e5217bd28191e064c6"} gateway-1 | {"time_local":"06/Jun/2024:13:15:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1722","request_time":"0.612","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"b9dcd265eb7935290e002d3739492854"} gateway-1 | {"time_local":"06/Jun/2024:13:15:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1724","request_time":"0.604","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"427aa7b809daa9f2a2fd9db4cc0b0107"} experiment-1 | {"level":"info","message":"DELETE /experiments/3f613aa3-2978-41d2-86c5-60676b1857d7 204 160ms","method":"DELETE","requestID":"c374190438ab46e5217bd28191e064c6","responseTime":160,"status":204,"url":"/experiments/3f613aa3-2978-41d2-86c5-60676b1857d7"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 119ms","method":"POST","requestID":"7d8e09eaa84dbf268c6bd871d4216553","responseTime":119,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15: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.126","http_referrer":"","http_user_agent":"node-fetch","requestID":"7d8e09eaa84dbf268c6bd871d4216553"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 117ms","method":"POST","requestID":"88e39ba4f72352c1754aafbada1b56e7","responseTime":117,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:15: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.127","http_referrer":"","http_user_agent":"node-fetch","requestID":"88e39ba4f72352c1754aafbada1b56e7"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7216e9aa25fc34732fdbcf181f5a6b42","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/ca1cf61f-6134-486f-b877-9dafa91493c0' closed"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":485,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":485,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.104624,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679759,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo"} 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":"7216e9aa25fc34732fdbcf181f5a6b42"},"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/f7d83d3c-81d5-49fb-b09f-5380d4062386' 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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F79e2406b-969f-481e-9a17-c22700f04f2e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"17cbe081-1ff0-4ffc-87da-f2c09a2ef671","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.8914578} 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":"7216e9aa25fc34732fdbcf181f5a6b42"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"23d3a42c-9821-41b3-94fb-1764bcbe2645","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.898136} 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":"7216e9aa25fc34732fdbcf181f5a6b42"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F79e2406b-969f-481e-9a17-c22700f04f2e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"d4529f55-5646-49a3-b4aa-878eab3d9941","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.9088643} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"df2a1bad-abfb-4db7-a21b-277b5a7c5409","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.9091432} 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":"7216e9aa25fc34732fdbcf181f5a6b42"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F79e2406b-969f-481e-9a17-c22700f04f2e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F79e2406b-969f-481e-9a17-c22700f04f2e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:59.908829335Z"}]},"request_id":"66eacfb9-8506-4249-9e36-260d8656529f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.9142685} 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":"7216e9aa25fc34732fdbcf181f5a6b42"},"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":"06/Jun/2024:13:15:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.058","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7216e9aa25fc34732fdbcf181f5a6b42"} device-1 | {"level":"info","message":"POST /devices? 201 52ms","method":"POST","requestID":"7216e9aa25fc34732fdbcf181f5a6b42","responseTime":52,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8be19f03fb244e5d6017d5839bafcb37","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":486,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":486,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.794,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:15:59Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679759,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc1OX0.dmO16pEoryYbvR2_WyaNAP3-yG5sHUl7rAlqb5nMpbo"} 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":"8be19f03fb244e5d6017d5839bafcb37"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c66e7d1-be7d-45b6-a550-0172b81579a7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"3aa6a39b-78f3-4ea5-9247-7afc068c1228","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.939308} 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":"8be19f03fb244e5d6017d5839bafcb37"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0f8f7fdb-2bed-475a-a72c-74a1954a4216","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.9442914} 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":"8be19f03fb244e5d6017d5839bafcb37"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c66e7d1-be7d-45b6-a550-0172b81579a7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"3eece56c-a75f-4a0f-86a7-876c4128d0fd","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.9585867} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"eaebe25b-b2bb-4da8-be62-95bfb11c37fe","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.9587514} 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":"8be19f03fb244e5d6017d5839bafcb37"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c66e7d1-be7d-45b6-a550-0172b81579a7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c66e7d1-be7d-45b6-a550-0172b81579a7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:59.958561089Z"}]},"request_id":"6e7bd118-eb07-4f7e-9ee9-e3762b881022","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679759.9636893} 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":"8be19f03fb244e5d6017d5839bafcb37"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"06/Jun/2024:13:15:59 +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":"8be19f03fb244e5d6017d5839bafcb37"} device-1 | {"level":"info","message":"POST /devices? 201 46ms","method":"POST","requestID":"8be19f03fb244e5d6017d5839bafcb37","responseTime":46,"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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c7bb92b8713a43e7d65403891b21a889","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"06/Jun/2024:13:16:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/8c66e7d1-be7d-45b6-a550-0172b81579a7/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":"c7bb92b8713a43e7d65403891b21a889"} device-1 | {"level":"info","message":"OPTIONS /devices/8c66e7d1-be7d-45b6-a550-0172b81579a7/websocket 200 1ms","method":"OPTIONS","requestID":"c7bb92b8713a43e7d65403891b21a889","responseTime":1,"status":200,"url":"/devices/8c66e7d1-be7d-45b6-a550-0172b81579a7/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2MX0.F5_UiDS7E1DKUJIdChKwALlJ_qbv7EK2_mII7LznGkA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b64333b1fa9b7067e77bdad1d8137a5f","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":487,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:01Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":487,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.347066,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:01Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/8c66e7d1-be7d-45b6-a550-0172b81579a7","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/8c66e7d1-be7d-45b6-a550-0172b81579a7","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679761,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2MX0.F5_UiDS7E1DKUJIdChKwALlJ_qbv7EK2_mII7LznGkA"} 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":"b64333b1fa9b7067e77bdad1d8137a5f"},"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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"cd654237b20ea0d730fcbd55460a4d72","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"06/Jun/2024:13:16:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/79e2406b-969f-481e-9a17-c22700f04f2e/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":"cd654237b20ea0d730fcbd55460a4d72"} device-1 | {"level":"info","message":"OPTIONS /devices/79e2406b-969f-481e-9a17-c22700f04f2e/websocket 200 1ms","method":"OPTIONS","requestID":"cd654237b20ea0d730fcbd55460a4d72","responseTime":1,"status":200,"url":"/devices/79e2406b-969f-481e-9a17-c22700f04f2e/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2MX0.F5_UiDS7E1DKUJIdChKwALlJ_qbv7EK2_mII7LznGkA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0116700f526d201540b1fd318e609c56","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"06/Jun/2024:13:16:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/8c66e7d1-be7d-45b6-a550-0172b81579a7/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":"b64333b1fa9b7067e77bdad1d8137a5f"} device-1 | {"level":"info","message":"POST /devices/8c66e7d1-be7d-45b6-a550-0172b81579a7/websocket 200 23ms","method":"POST","requestID":"b64333b1fa9b7067e77bdad1d8137a5f","responseTime":23,"status":200,"url":"/devices/8c66e7d1-be7d-45b6-a550-0172b81579a7/websocket"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":488,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:01Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":488,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.755437,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:01Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/79e2406b-969f-481e-9a17-c22700f04f2e","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/79e2406b-969f-481e-9a17-c22700f04f2e","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679761,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2MX0.F5_UiDS7E1DKUJIdChKwALlJ_qbv7EK2_mII7LznGkA"} 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":"0116700f526d201540b1fd318e609c56"},"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":"06/Jun/2024:13:16:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/79e2406b-969f-481e-9a17-c22700f04f2e/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.026","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"0116700f526d201540b1fd318e609c56"} device-1 | {"level":"info","message":"POST /devices/79e2406b-969f-481e-9a17-c22700f04f2e/websocket 200 22ms","method":"POST","requestID":"0116700f526d201540b1fd318e609c56","responseTime":22,"status":200,"url":"/devices/79e2406b-969f-481e-9a17-c22700f04f2e/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/8c66e7d1-be7d-45b6-a550-0172b81579a7' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/79e2406b-969f-481e-9a17-c22700f04f2e' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2MX0.F5_UiDS7E1DKUJIdChKwALlJ_qbv7EK2_mII7LznGkA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f819529b9ac2fc7287ae639a614d636c","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":489,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:01Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":489,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.670488,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/79e2406b-969f-481e-9a17-c22700f04f2e","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/79e2406b-969f-481e-9a17-c22700f04f2e","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679761,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2MX0.F5_UiDS7E1DKUJIdChKwALlJ_qbv7EK2_mII7LznGkA"} 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":"f819529b9ac2fc7287ae639a614d636c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F79e2406b-969f-481e-9a17-c22700f04f2e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F79e2406b-969f-481e-9a17-c22700f04f2e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:59.908829335Z"}]},"request_id":"9735cef3-bcb0-43a5-87c1-a602bb39bda1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679761.9889932} 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":"f819529b9ac2fc7287ae639a614d636c"},"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":"06/Jun/2024:13:16:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/79e2406b-969f-481e-9a17-c22700f04f2e? 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":"f819529b9ac2fc7287ae639a614d636c"} device-1 | {"level":"info","message":"GET /devices/79e2406b-969f-481e-9a17-c22700f04f2e? 200 16ms","method":"GET","requestID":"f819529b9ac2fc7287ae639a614d636c","responseTime":16,"status":200,"url":"/devices/79e2406b-969f-481e-9a17-c22700f04f2e?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2MX0.F5_UiDS7E1DKUJIdChKwALlJ_qbv7EK2_mII7LznGkA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a60b9dcc344fa00b74e0508ed3b31fc0","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":490,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:02Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":490,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.84058,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8c66e7d1-be7d-45b6-a550-0172b81579a7","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/8c66e7d1-be7d-45b6-a550-0172b81579a7","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679761,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2MX0.F5_UiDS7E1DKUJIdChKwALlJ_qbv7EK2_mII7LznGkA"} 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":"a60b9dcc344fa00b74e0508ed3b31fc0"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c66e7d1-be7d-45b6-a550-0172b81579a7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c66e7d1-be7d-45b6-a550-0172b81579a7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:59.958561089Z"}]},"request_id":"80dcb52a-fd84-4551-9cab-d3666ee46b66","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679762.0096886} 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":"a60b9dcc344fa00b74e0508ed3b31fc0"},"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":"06/Jun/2024:13:16:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8c66e7d1-be7d-45b6-a550-0172b81579a7? 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":"a60b9dcc344fa00b74e0508ed3b31fc0"} device-1 | {"level":"info","message":"GET /devices/8c66e7d1-be7d-45b6-a550-0172b81579a7? 200 14ms","method":"GET","requestID":"a60b9dcc344fa00b74e0508ed3b31fc0","responseTime":14,"status":200,"url":"/devices/8c66e7d1-be7d-45b6-a550-0172b81579a7?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2Mn0.hViDol52hLQMPD8Bb_gYOpTQHNCArzda6N06blQ2qb8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ccdfd622a46bd6522f30165d1a14e726","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:36466","level":"info","msg":"Received request.","req_id":491,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:02Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":491,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.195726,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679762,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2Mn0.hViDol52hLQMPD8Bb_gYOpTQHNCArzda6N06blQ2qb8"} 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":"ccdfd622a46bd6522f30165d1a14e726"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fba497de-f41c-4187-b263-8970a506ffb9"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fba497de-f41c-4187-b263-8970a506ffb9"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fba497de-f41c-4187-b263-8970a506ffb9"},"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:36466","level":"info","msg":"Received request.","req_id":492,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:02Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":492,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.62163,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:02Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":493,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/79e2406b-969f-481e-9a17-c22700f04f2e","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/79e2406b-969f-481e-9a17-c22700f04f2e","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679762,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2Mn0.hViDol52hLQMPD8Bb_gYOpTQHNCArzda6N06blQ2qb8"} 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":"ec0eeea0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":493,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.134466,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8c66e7d1-be7d-45b6-a550-0172b81579a7","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/8c66e7d1-be7d-45b6-a550-0172b81579a7","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679762,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2Mn0.hViDol52hLQMPD8Bb_gYOpTQHNCArzda6N06blQ2qb8"} 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":"ec0f3cc0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F79e2406b-969f-481e-9a17-c22700f04f2e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F79e2406b-969f-481e-9a17-c22700f04f2e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:59.908829335Z"}]},"request_id":"30e96761-a0b9-40b1-8f33-507c84b60a47","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679762.070962} 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":"ec0eeea0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c66e7d1-be7d-45b6-a550-0172b81579a7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c66e7d1-be7d-45b6-a550-0172b81579a7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:59.958561089Z"}]},"request_id":"92945e69-79a6-4e20-87d7-beb437999e76","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679762.0722158} 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":"ec0f3cc0-2406-11ef-9563-e3996e819f8c"},"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/79e2406b-969f-481e-9a17-c22700f04f2e? 200 21ms","method":"GET","requestID":"ec0eeea0-2406-11ef-9563-e3996e819f8c","responseTime":21,"status":200,"url":"/devices/79e2406b-969f-481e-9a17-c22700f04f2e?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/8c66e7d1-be7d-45b6-a550-0172b81579a7? 200 20ms","method":"GET","requestID":"ec0f3cc0-2406-11ef-9563-e3996e819f8c","responseTime":20,"status":200,"url":"/devices/8c66e7d1-be7d-45b6-a550-0172b81579a7?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fba497de-f41c-4187-b263-8970a506ffb9"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fba497de-f41c-4187-b263-8970a506ffb9"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fba497de-f41c-4187-b263-8970a506ffb9"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fba497de-f41c-4187-b263-8970a506ffb9"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fba497de-f41c-4187-b263-8970a506ffb9"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fba497de-f41c-4187-b263-8970a506ffb9"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fba497de-f41c-4187-b263-8970a506ffb9"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fba497de-f41c-4187-b263-8970a506ffb9"},"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:36466","level":"info","msg":"Received request.","req_id":494,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:02Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":495,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:02Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fba497de-f41c-4187-b263-8970a506ffb9"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":494,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.59626,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:02Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":495,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.413489,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/79e2406b-969f-481e-9a17-c22700f04f2e","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/79e2406b-969f-481e-9a17-c22700f04f2e","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679762,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2Mn0.hViDol52hLQMPD8Bb_gYOpTQHNCArzda6N06blQ2qb8"} 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":"ec1927d0-2406-11ef-9563-e3996e819f8c"},"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/8c66e7d1-be7d-45b6-a550-0172b81579a7","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/8c66e7d1-be7d-45b6-a550-0172b81579a7","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679762,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2Mn0.hViDol52hLQMPD8Bb_gYOpTQHNCArzda6N06blQ2qb8"} 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":"ec1975f0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F79e2406b-969f-481e-9a17-c22700f04f2e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F79e2406b-969f-481e-9a17-c22700f04f2e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:59.908829335Z"}]},"request_id":"8d94af18-32e2-480f-b6c5-ae5f3467c00c","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679762.1384735} 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":"ec1927d0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c66e7d1-be7d-45b6-a550-0172b81579a7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c66e7d1-be7d-45b6-a550-0172b81579a7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:59.958561089Z"}]},"request_id":"e1e44deb-d089-41ea-a8f1-71e78edd851f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679762.1393168} 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":"ec1975f0-2406-11ef-9563-e3996e819f8c"},"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/79e2406b-969f-481e-9a17-c22700f04f2e? 200 20ms","method":"GET","requestID":"ec1927d0-2406-11ef-9563-e3996e819f8c","responseTime":20,"status":200,"url":"/devices/79e2406b-969f-481e-9a17-c22700f04f2e?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/8c66e7d1-be7d-45b6-a550-0172b81579a7? 200 19ms","method":"GET","requestID":"ec1975f0-2406-11ef-9563-e3996e819f8c","responseTime":19,"status":200,"url":"/devices/8c66e7d1-be7d-45b6-a550-0172b81579a7?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffba497de-f41c-4187-b263-8970a506ffb9#owner@http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffba497de-f41c-4187-b263-8970a506ffb9","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"8b2739eb-174b-4c47-9a72-061793fe5f1f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679762.1532116} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a4df5e8c-4f88-4fea-affd-a2e5c3e6b778","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679762.1535194} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":496,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:02Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":496,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.705719,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:02Z"} 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":"ccdfd622a46bd6522f30165d1a14e726"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":21}} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/79e2406b-969f-481e-9a17-c22700f04f2e","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/79e2406b-969f-481e-9a17-c22700f04f2e","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ec1cd150-2406-11ef-9563-e3996e819f8c"},"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/79e2406b-969f-481e-9a17-c22700f04f2e/signaling 200 12ms","method":"POST","requestID":"ec1cd150-2406-11ef-9563-e3996e819f8c","responseTime":12,"status":200,"url":"/devices/79e2406b-969f-481e-9a17-c22700f04f2e/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/fba497de-f41c-4187-b263-8970a506ffb9","user":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} gateway-1 | {"time_local":"06/Jun/2024:13:16:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"807","request_time":"0.148","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ccdfd622a46bd6522f30165d1a14e726"} experiment-1 | {"level":"info","message":"POST /experiments? 201 143ms","method":"POST","requestID":"ccdfd622a46bd6522f30165d1a14e726","responseTime":143,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":497,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:02Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":497,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.648609,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:02Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/8c66e7d1-be7d-45b6-a550-0172b81579a7","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8c66e7d1-be7d-45b6-a550-0172b81579a7","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ec1f1b40-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2Mn0.hViDol52hLQMPD8Bb_gYOpTQHNCArzda6N06blQ2qb8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"2a83ca286ccbc5d4a7178d5eff34647a","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/8c66e7d1-be7d-45b6-a550-0172b81579a7/signaling 200 10ms","method":"POST","requestID":"ec1f1b40-2406-11ef-9563-e3996e819f8c","responseTime":10,"status":200,"url":"/devices/8c66e7d1-be7d-45b6-a550-0172b81579a7/signaling"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":498,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:02Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":498,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.661784,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:02Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fba497de-f41c-4187-b263-8970a506ffb9"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fba497de-f41c-4187-b263-8970a506ffb9"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"3c9524c0-c100-42dc-a340-513f187b822e"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"bf4643d3-caf6-420d-ad8c-585cf9c17fe1"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"177b93aa-a629-4222-8dc3-cb739bab5c5d"}]},"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/8c66e7d1-be7d-45b6-a550-0172b81579a7"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/79e2406b-969f-481e-9a17-c22700f04f2e"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/79e2406b-969f-481e-9a17-c22700f04f2e","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/79e2406b-969f-481e-9a17-c22700f04f2e","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679762,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2Mn0.hViDol52hLQMPD8Bb_gYOpTQHNCArzda6N06blQ2qb8"} 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":"2a83ca286ccbc5d4a7178d5eff34647a"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F79e2406b-969f-481e-9a17-c22700f04f2e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F79e2406b-969f-481e-9a17-c22700f04f2e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:59.908829335Z"}]},"request_id":"c374ffeb-e100-41f6-ab3e-5c471d97e4f5","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679762.1797547} 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":"2a83ca286ccbc5d4a7178d5eff34647a"},"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:36466","level":"info","msg":"Received request.","req_id":499,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:02Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":499,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.034111,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679762,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2Mn0.hViDol52hLQMPD8Bb_gYOpTQHNCArzda6N06blQ2qb8"} 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":"ec213e20-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/79e2406b-969f-481e-9a17-c22700f04f2e? 200 16ms","method":"GET","requestID":"2a83ca286ccbc5d4a7178d5eff34647a","responseTime":16,"status":200,"url":"/devices/79e2406b-969f-481e-9a17-c22700f04f2e?"} gateway-1 | {"time_local":"06/Jun/2024:13:16:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/79e2406b-969f-481e-9a17-c22700f04f2e? 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":"2a83ca286ccbc5d4a7178d5eff34647a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2Mn0.hViDol52hLQMPD8Bb_gYOpTQHNCArzda6N06blQ2qb8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"89ab624729536a99e205b7b0246e72c6","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"38ffba43-3440-47af-a7d8-d36911a64024","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679762.1938667} device-1 | {"level":"info","message":"getDevicesByDeviceId 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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"132d477f-fe7d-4e08-9073-13a9b189adc5","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679762.194116} 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":"ec213e20-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":500,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:02Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":500,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.894873,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8c66e7d1-be7d-45b6-a550-0172b81579a7","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/8c66e7d1-be7d-45b6-a550-0172b81579a7","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679762,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2Mn0.hViDol52hLQMPD8Bb_gYOpTQHNCArzda6N06blQ2qb8"} 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":"89ab624729536a99e205b7b0246e72c6"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c66e7d1-be7d-45b6-a550-0172b81579a7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c66e7d1-be7d-45b6-a550-0172b81579a7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:15:59.958561089Z"}]},"request_id":"99112325-8561-482e-a8fb-88cfaed72e37","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679762.204502} 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":"89ab624729536a99e205b7b0246e72c6"},"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/f4167c9c-7eec-4b57-9637-d447261bf155'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/f4167c9c-7eec-4b57-9637-d447261bf155'"} 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 36ms","method":"POST","requestID":"ec213e20-2406-11ef-9563-e3996e819f8c","responseTime":36,"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":"06/Jun/2024:13:16:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8c66e7d1-be7d-45b6-a550-0172b81579a7? 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":"89ab624729536a99e205b7b0246e72c6"} device-1 | {"level":"info","message":"GET /devices/8c66e7d1-be7d-45b6-a550-0172b81579a7? 200 21ms","method":"GET","requestID":"89ab624729536a99e205b7b0246e72c6","responseTime":21,"status":200,"url":"/devices/8c66e7d1-be7d-45b6-a550-0172b81579a7?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fba497de-f41c-4187-b263-8970a506ffb9"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/f4167c9c-7eec-4b57-9637-d447261bf155' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"f4167c9c-7eec-4b57-9637-d447261bf155","statusDeviceA":"new","statusDeviceB":"connecting"},"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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"5fee2a15f1cbe6cc4df26c9f90b594f9","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":"new","url":"http://localhost/devices/8c66e7d1-be7d-45b6-a550-0172b81579a7"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/79e2406b-969f-481e-9a17-c22700f04f2e"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/f4167c9c-7eec-4b57-9637-d447261bf155"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 9ms","method":"POST","requestID":"5fee2a15f1cbe6cc4df26c9f90b594f9","responseTime":9,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:16: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.013","http_referrer":"","http_user_agent":"node-fetch","requestID":"5fee2a15f1cbe6cc4df26c9f90b594f9"} device-1 | {"data":{"peerconnection":"f4167c9c-7eec-4b57-9637-d447261bf155","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"f4167c9c-7eec-4b57-9637-d447261bf155","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/f4167c9c-7eec-4b57-9637-d447261bf155' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"f4167c9c-7eec-4b57-9637-d447261bf155","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"11f01cd5a860181b9b344a26c55a1b13","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/8c66e7d1-be7d-45b6-a550-0172b81579a7"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/79e2406b-969f-481e-9a17-c22700f04f2e"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/f4167c9c-7eec-4b57-9637-d447261bf155"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":501,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:02Z"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","contextual_tuples":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ff4167c9c-7eec-4b57-9637-d447261bf155","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"81fa23b1-f3f1-457e-8099-69ebe1298008","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679762.4815953} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":501,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":4.166662,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/f4167c9c-7eec-4b57-9637-d447261bf155","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/f4167c9c-7eec-4b57-9637-d447261bf155","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 8ms","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":"ec4e68a0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/f4167c9c-7eec-4b57-9637-d447261bf155 200 13ms","method":"GET","requestID":"ec4e68a0-2406-11ef-9563-e3996e819f8c","responseTime":13,"status":200,"url":"/peerconnections/f4167c9c-7eec-4b57-9637-d447261bf155"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 47ms","method":"POST","requestID":"11f01cd5a860181b9b344a26c55a1b13","responseTime":47,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:16: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.051","http_referrer":"","http_user_agent":"node-fetch","requestID":"11f01cd5a860181b9b344a26c55a1b13"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2Mn0.hViDol52hLQMPD8Bb_gYOpTQHNCArzda6N06blQ2qb8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"b5674c902df720acc9178640ccbdc80b","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/fba497de-f41c-4187-b263-8970a506ffb9"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":502,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:02Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":502,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.269862,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/fba497de-f41c-4187-b263-8970a506ffb9","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/fba497de-f41c-4187-b263-8970a506ffb9","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679762,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2Mn0.hViDol52hLQMPD8Bb_gYOpTQHNCArzda6N06blQ2qb8"} 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":"b5674c902df720acc9178640ccbdc80b"},"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/fba497de-f41c-4187-b263-8970a506ffb9"} gateway-1 | {"time_local":"06/Jun/2024:13:16:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/fba497de-f41c-4187-b263-8970a506ffb9 HTTP/1.1","status": "200","body_bytes_sent":"880","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b5674c902df720acc9178640ccbdc80b"} experiment-1 | {"level":"info","message":"GET /experiments/fba497de-f41c-4187-b263-8970a506ffb9 200 18ms","method":"GET","requestID":"b5674c902df720acc9178640ccbdc80b","responseTime":18,"status":200,"url":"/experiments/fba497de-f41c-4187-b263-8970a506ffb9"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2Mn0.hViDol52hLQMPD8Bb_gYOpTQHNCArzda6N06blQ2qb8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"0ae6e734e275e9b734cf941c89287380","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/fba497de-f41c-4187-b263-8970a506ffb9"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":503,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:02Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":503,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.33703,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:02Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/fba497de-f41c-4187-b263-8970a506ffb9","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/fba497de-f41c-4187-b263-8970a506ffb9","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679762,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2Mn0.hViDol52hLQMPD8Bb_gYOpTQHNCArzda6N06blQ2qb8"} 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":"0ae6e734e275e9b734cf941c89287380"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fba497de-f41c-4187-b263-8970a506ffb9"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":504,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:02Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":504,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.289755,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:02Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/f4167c9c-7eec-4b57-9637-d447261bf155","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:http://localhost/peerconnections/f4167c9c-7eec-4b57-9637-d447261bf155","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679762,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2Mn0.hViDol52hLQMPD8Bb_gYOpTQHNCArzda6N06blQ2qb8"} 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":"ec617b70-2406-11ef-9563-e3996e819f8c"},"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/f4167c9c-7eec-4b57-9637-d447261bf155' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/f4167c9c-7eec-4b57-9637-d447261bf155' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"f4167c9c-7eec-4b57-9637-d447261bf155","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ff4167c9c-7eec-4b57-9637-d447261bf155': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ff4167c9c-7eec-4b57-9637-d447261bf155","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"1acd93dd-815f-4a6c-832e-76295c2fdcdb","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679762.6272786} 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"1423ede3488184a8e4ebb38fe98cc442","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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"744b4570-32d3-4cdc-abaa-de99135b1222","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679762.6278238} 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":"ec617b70-2406-11ef-9563-e3996e819f8c"},"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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"d0114bc9f946012e930a07fbff8b67f7","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":"closed","url":"http://localhost/devices/8c66e7d1-be7d-45b6-a550-0172b81579a7"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/79e2406b-969f-481e-9a17-c22700f04f2e"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/f4167c9c-7eec-4b57-9637-d447261bf155"}}},"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/8c66e7d1-be7d-45b6-a550-0172b81579a7"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/79e2406b-969f-481e-9a17-c22700f04f2e"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/f4167c9c-7eec-4b57-9637-d447261bf155"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"f4167c9c-7eec-4b57-9637-d447261bf155","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/f4167c9c-7eec-4b57-9637-d447261bf155 204 54ms","method":"DELETE","requestID":"ec617b70-2406-11ef-9563-e3996e819f8c","responseTime":54,"status":204,"url":"/peerconnections/f4167c9c-7eec-4b57-9637-d447261bf155"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fba497de-f41c-4187-b263-8970a506ffb9"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffba497de-f41c-4187-b263-8970a506ffb9': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffba497de-f41c-4187-b263-8970a506ffb9","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"29ce9fae-40bb-4148-93f1-8a7e8759e7e8","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679762.68746} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a2ee0510-728d-4ffb-8f35-06718c58731d","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679762.6880858} 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":"0ae6e734e275e9b734cf941c89287380"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":16}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/fba497de-f41c-4187-b263-8970a506ffb9"} gateway-1 | {"time_local":"06/Jun/2024:13:16:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/fba497de-f41c-4187-b263-8970a506ffb9 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.172","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0ae6e734e275e9b734cf941c89287380"} experiment-1 | {"level":"info","message":"DELETE /experiments/fba497de-f41c-4187-b263-8970a506ffb9 204 168ms","method":"DELETE","requestID":"0ae6e734e275e9b734cf941c89287380","responseTime":168,"status":204,"url":"/experiments/fba497de-f41c-4187-b263-8970a506ffb9"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 121ms","method":"POST","requestID":"1423ede3488184a8e4ebb38fe98cc442","responseTime":121,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:16: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.127","http_referrer":"","http_user_agent":"node-fetch","requestID":"1423ede3488184a8e4ebb38fe98cc442"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 120ms","method":"POST","requestID":"d0114bc9f946012e930a07fbff8b67f7","responseTime":120,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:16: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.128","http_referrer":"","http_user_agent":"node-fetch","requestID":"d0114bc9f946012e930a07fbff8b67f7"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2Mn0.hViDol52hLQMPD8Bb_gYOpTQHNCArzda6N06blQ2qb8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"6d9db80d0ed739f41400d5f5677afeb5","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"06/Jun/2024:13:16:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1758","request_time":"0.822","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"463a4ee611e463acfbd8fa3fe71d8a35"} gateway-1 | {"time_local":"06/Jun/2024:13:16:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1488","request_time":"0.804","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8ae96537ff158de2b100862ad3b5b971"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":505,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:02Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":505,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.849668,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679762,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2Mn0.hViDol52hLQMPD8Bb_gYOpTQHNCArzda6N06blQ2qb8"} 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":"6d9db80d0ed739f41400d5f5677afeb5"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/8c66e7d1-be7d-45b6-a550-0172b81579a7' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/79e2406b-969f-481e-9a17-c22700f04f2e' 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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ef3c2e7-7757-449f-9829-66e723f79fb5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"4ede1b6f-231c-465c-844b-16fe5f3a7c10","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679762.7905943} 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":"6d9db80d0ed739f41400d5f5677afeb5"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"80eb6257-f8cf-4ca1-acc4-eabb02e6907b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679762.7950492} 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":"6d9db80d0ed739f41400d5f5677afeb5"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ef3c2e7-7757-449f-9829-66e723f79fb5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"67a2388d-d917-4fda-8c94-8c2d80578e94","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679762.8062944} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0591dce1-aae3-4209-891d-2ae39fd96c76","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679762.8064778} 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":"6d9db80d0ed739f41400d5f5677afeb5"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ef3c2e7-7757-449f-9829-66e723f79fb5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ef3c2e7-7757-449f-9829-66e723f79fb5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:16:02.806268294Z"}]},"request_id":"34b9a30b-bf0b-43eb-b5fa-dcd95adcbd9a","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679762.809946} 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":"6d9db80d0ed739f41400d5f5677afeb5"},"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":"06/Jun/2024:13:16:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"315","request_time":"0.059","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6d9db80d0ed739f41400d5f5677afeb5"} device-1 | {"level":"info","message":"POST /devices? 201 52ms","method":"POST","requestID":"6d9db80d0ed739f41400d5f5677afeb5","responseTime":52,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2Mn0.hViDol52hLQMPD8Bb_gYOpTQHNCArzda6N06blQ2qb8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"afa48a1c907359d67d4e81ab73654590","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":506,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:02Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":506,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.797538,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679762,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2Mn0.hViDol52hLQMPD8Bb_gYOpTQHNCArzda6N06blQ2qb8"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","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":"afa48a1c907359d67d4e81ab73654590"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09448a8-0148-4674-8df6-90856593dee2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"41c426d9-37db-44c9-b6e3-f83e77790942","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679762.8328996} 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":"afa48a1c907359d67d4e81ab73654590"},"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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bb2ec1ba-ea30-4020-a6a6-7675b03b544a","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679762.837376} 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":"afa48a1c907359d67d4e81ab73654590"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09448a8-0148-4674-8df6-90856593dee2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"450e72e9-ab39-4658-985a-d619a371b23f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679762.8494372} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4190210c-c2ef-4e68-af3a-d8bcd8ca8f0b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679762.8497062} 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":"afa48a1c907359d67d4e81ab73654590"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09448a8-0148-4674-8df6-90856593dee2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09448a8-0148-4674-8df6-90856593dee2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:16:02.849405987Z"}]},"request_id":"ffaa05a0-6628-4cfb-862c-8ec47301ba37","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679762.8533356} 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":"afa48a1c907359d67d4e81ab73654590"},"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":"afa48a1c907359d67d4e81ab73654590","responseTime":38,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"06/Jun/2024:13:16: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.042","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"afa48a1c907359d67d4e81ab73654590"} 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"8266d6616a68baf6b29de0bb5dc493b6","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"06/Jun/2024:13:16:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/f09448a8-0148-4674-8df6-90856593dee2/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":"8266d6616a68baf6b29de0bb5dc493b6"} device-1 | {"level":"info","message":"OPTIONS /devices/f09448a8-0148-4674-8df6-90856593dee2/websocket 200 0ms","method":"OPTIONS","requestID":"8266d6616a68baf6b29de0bb5dc493b6","responseTime":0,"status":200,"url":"/devices/f09448a8-0148-4674-8df6-90856593dee2/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2NH0.HxbCMF6bq4TRURvP6ibPTLzGEMXSQtFk4GK7KWizv0g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"bc06c41cb751aef802574e28a0a98cfd","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":507,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:04Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":507,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.577595,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:04Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f09448a8-0148-4674-8df6-90856593dee2","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/f09448a8-0148-4674-8df6-90856593dee2","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679764,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2NH0.HxbCMF6bq4TRURvP6ibPTLzGEMXSQtFk4GK7KWizv0g"} 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":"bc06c41cb751aef802574e28a0a98cfd"},"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":"06/Jun/2024:13:16:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/f09448a8-0148-4674-8df6-90856593dee2/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.026","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"bc06c41cb751aef802574e28a0a98cfd"} device-1 | {"level":"info","message":"POST /devices/f09448a8-0148-4674-8df6-90856593dee2/websocket 200 20ms","method":"POST","requestID":"bc06c41cb751aef802574e28a0a98cfd","responseTime":20,"status":200,"url":"/devices/f09448a8-0148-4674-8df6-90856593dee2/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/f09448a8-0148-4674-8df6-90856593dee2' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2NH0.HxbCMF6bq4TRURvP6ibPTLzGEMXSQtFk4GK7KWizv0g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"b1f441582d21b993cd0e5ed1edd1b186","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":508,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:04Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":508,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.410135,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f09448a8-0148-4674-8df6-90856593dee2","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/f09448a8-0148-4674-8df6-90856593dee2","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679764,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2NH0.HxbCMF6bq4TRURvP6ibPTLzGEMXSQtFk4GK7KWizv0g"} 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":"b1f441582d21b993cd0e5ed1edd1b186"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09448a8-0148-4674-8df6-90856593dee2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09448a8-0148-4674-8df6-90856593dee2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:16:02.849405987Z"}]},"request_id":"7692c11f-9b0f-48ad-8650-095f69514e35","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679764.901832} 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":"b1f441582d21b993cd0e5ed1edd1b186"},"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/f09448a8-0148-4674-8df6-90856593dee2? 200 17ms","method":"GET","requestID":"b1f441582d21b993cd0e5ed1edd1b186","responseTime":17,"status":200,"url":"/devices/f09448a8-0148-4674-8df6-90856593dee2?"} gateway-1 | {"time_local":"06/Jun/2024:13:16:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f09448a8-0148-4674-8df6-90856593dee2? 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":"b1f441582d21b993cd0e5ed1edd1b186"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2NH0.HxbCMF6bq4TRURvP6ibPTLzGEMXSQtFk4GK7KWizv0g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5b648932dea408d3e05d3d58f83702ec","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:36466","level":"info","msg":"Received request.","req_id":509,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:04Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":509,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.917821,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:04Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679764,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2NH0.HxbCMF6bq4TRURvP6ibPTLzGEMXSQtFk4GK7KWizv0g"} 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":"5b648932dea408d3e05d3d58f83702ec"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f080208-9a9d-4c0d-a988-08254091ad58"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f080208-9a9d-4c0d-a988-08254091ad58"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f080208-9a9d-4c0d-a988-08254091ad58"},"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:36466","level":"info","msg":"Received request.","req_id":510,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:04Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":510,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.338071,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5ef3c2e7-7757-449f-9829-66e723f79fb5","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/5ef3c2e7-7757-449f-9829-66e723f79fb5","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679764,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2NH0.HxbCMF6bq4TRURvP6ibPTLzGEMXSQtFk4GK7KWizv0g"} 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":"edc8ac90-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":511,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:04Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":511,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.142379,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f09448a8-0148-4674-8df6-90856593dee2","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/f09448a8-0148-4674-8df6-90856593dee2","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679764,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2NH0.HxbCMF6bq4TRURvP6ibPTLzGEMXSQtFk4GK7KWizv0g"} 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":"edc8fab0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ef3c2e7-7757-449f-9829-66e723f79fb5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5ef3c2e7-7757-449f-9829-66e723f79fb5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:16:02.806268294Z"}]},"request_id":"9b540540-dacb-43b0-ac66-7091165f8228","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679764.964628} 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":"edc8ac90-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09448a8-0148-4674-8df6-90856593dee2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09448a8-0148-4674-8df6-90856593dee2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:16:02.849405987Z"}]},"request_id":"7ecf63f0-67aa-47d9-9bb9-6a3bbf716d8e","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679764.9655855} 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":"edc8fab0-2406-11ef-9563-e3996e819f8c"},"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/5ef3c2e7-7757-449f-9829-66e723f79fb5? 200 19ms","method":"GET","requestID":"edc8ac90-2406-11ef-9563-e3996e819f8c","responseTime":19,"status":200,"url":"/devices/5ef3c2e7-7757-449f-9829-66e723f79fb5?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f09448a8-0148-4674-8df6-90856593dee2? 200 18ms","method":"GET","requestID":"edc8fab0-2406-11ef-9563-e3996e819f8c","responseTime":18,"status":200,"url":"/devices/f09448a8-0148-4674-8df6-90856593dee2?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f080208-9a9d-4c0d-a988-08254091ad58"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f080208-9a9d-4c0d-a988-08254091ad58"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f080208-9a9d-4c0d-a988-08254091ad58"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f080208-9a9d-4c0d-a988-08254091ad58"},"level":"info","message":"Attempting to instantiate devices for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":512,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:04Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":512,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.283152,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:04Z"} authorization-1 | {"action":"instantiate","level":"info","message":"opa_check","object":"device:http://localhost/devices/5ef3c2e7-7757-449f-9829-66e723f79fb5","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/5ef3c2e7-7757-449f-9829-66e723f79fb5","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679764,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2NH0.HxbCMF6bq4TRURvP6ibPTLzGEMXSQtFk4GK7KWizv0g"} 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":"edcdb5a0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed710dbd-213f-471f-bf60-5f96883dc63d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"e79929d5-a252-4b89-ba7c-8b8bab8cb85f","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679765.015578} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5b3710a0-8eef-45fc-9e50-5fb48bbbad0b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679765.015674} 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":"edcdb5a0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} device-1 | {"level":"info","message":"registering changed-callback for device 'http://localhost/devices/ed710dbd-213f-471f-bf60-5f96883dc63d' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postDevicesByDeviceId succeeded"} authentication-1 | {"level":"info","message":"POST /token 201 25ms","method":"POST","requestID":"edd35af0-2406-11ef-b414-ef0ae57f3a0c","responseTime":25,"status":201,"url":"/token"} device-1 | {"level":"info","message":"POST /devices/5ef3c2e7-7757-449f-9829-66e723f79fb5?changedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 69ms","method":"POST","requestID":"edcdb5a0-2406-11ef-9563-e3996e819f8c","responseTime":69,"status":201,"url":"/devices/5ef3c2e7-7757-449f-9829-66e723f79fb5?changedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f080208-9a9d-4c0d-a988-08254091ad58"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f080208-9a9d-4c0d-a988-08254091ad58"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f080208-9a9d-4c0d-a988-08254091ad58"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f080208-9a9d-4c0d-a988-08254091ad58"},"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/5f080208-9a9d-4c0d-a988-08254091ad58"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":513,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:05Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":513,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.309193,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:05Z"} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Received request.","req_id":514,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ed710dbd-213f-471f-bf60-5f96883dc63d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/ed710dbd-213f-471f-bf60-5f96883dc63d","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679764,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2NH0.HxbCMF6bq4TRURvP6ibPTLzGEMXSQtFk4GK7KWizv0g"} 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":"ede0a160-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:43564","level":"info","msg":"Sent response.","req_id":514,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.841089,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f09448a8-0148-4674-8df6-90856593dee2","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/f09448a8-0148-4674-8df6-90856593dee2","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679764,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2NH0.HxbCMF6bq4TRURvP6ibPTLzGEMXSQtFk4GK7KWizv0g"} 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":"ede0ef80-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed710dbd-213f-471f-bf60-5f96883dc63d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed710dbd-213f-471f-bf60-5f96883dc63d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:16:05.015556157Z"}]},"request_id":"d101e39b-3cf3-4843-b0b3-34948c7d7806","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679765.1266818} 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":"ede0a160-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09448a8-0148-4674-8df6-90856593dee2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09448a8-0148-4674-8df6-90856593dee2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:16:02.849405987Z"}]},"request_id":"b516e01f-1b47-451d-a3c2-101fa411a709","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679765.1279037} 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":"ede0ef80-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5f080208-9a9d-4c0d-a988-08254091ad58#owner@http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5f080208-9a9d-4c0d-a988-08254091ad58","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"a7d72971-d1fc-4622-b968-6c266c4aa5cc","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679765.1349008} 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:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7d26d0a5-c289-4762-b3d8-b36f22848469","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679765.135068} device-1 | {"level":"info","message":"GET /devices/ed710dbd-213f-471f-bf60-5f96883dc63d? 200 26ms","method":"GET","requestID":"ede0a160-2406-11ef-9563-e3996e819f8c","responseTime":26,"status":200,"url":"/devices/ed710dbd-213f-471f-bf60-5f96883dc63d?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f09448a8-0148-4674-8df6-90856593dee2? 200 26ms","method":"GET","requestID":"ede0ef80-2406-11ef-9563-e3996e819f8c","responseTime":26,"status":200,"url":"/devices/f09448a8-0148-4674-8df6-90856593dee2?"} 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":"5b648932dea408d3e05d3d58f83702ec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":19}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/5f080208-9a9d-4c0d-a988-08254091ad58","user":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"06/Jun/2024:13:16:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1107","request_time":"0.239","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5b648932dea408d3e05d3d58f83702ec"} experiment-1 | {"level":"info","message":"POST /experiments? 201 232ms","method":"POST","requestID":"5b648932dea408d3e05d3d58f83702ec","responseTime":232,"status":201,"url":"/experiments?"} 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"034af49b510a6a73fe621c09a8dc33e4","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"06/Jun/2024:13:16:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/ed710dbd-213f-471f-bf60-5f96883dc63d/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":"034af49b510a6a73fe621c09a8dc33e4"} device-1 | {"level":"info","message":"OPTIONS /devices/ed710dbd-213f-471f-bf60-5f96883dc63d/websocket 200 2ms","method":"OPTIONS","requestID":"034af49b510a6a73fe621c09a8dc33e4","responseTime":2,"status":200,"url":"/devices/ed710dbd-213f-471f-bf60-5f96883dc63d/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6IldqdmpqVHRYX1BsS0dpbTBxMWVCZWFac0J6Z1dIRTU3NlA5TkxJXzItM2pQdmRJR3dJVGJ1WnAtZExfVEgtWUpURlhjbFFmQ2ZPUTdhckJuSmFNV0NBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2N30.YEMnAyZjsgSrtHgtLUsSnbTXDTbgFAMKGEXqW4xz-CU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"1649239b5f742748d85846bfa57b3597","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":515,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:07Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":515,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.334648,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:07Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ed710dbd-213f-471f-bf60-5f96883dc63d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/ed710dbd-213f-471f-bf60-5f96883dc63d","object_type":"device","payload":{"admin":true,"edgeToken":"WjvjjTtX_PlKGim0q1eBeaZsBzgWHE576P9NLI_2-3jPvdIGwITbuZp-dL_TH-YJTFXclQfCfOQ7arBnJaMWCA","iat":1717679767,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6IldqdmpqVHRYX1BsS0dpbTBxMWVCZWFac0J6Z1dIRTU3NlA5TkxJXzItM2pQdmRJR3dJVGJ1WnAtZExfVEgtWUpURlhjbFFmQ2ZPUTdhckJuSmFNV0NBIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2N30.YEMnAyZjsgSrtHgtLUsSnbTXDTbgFAMKGEXqW4xz-CU"} 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":"1649239b5f742748d85846bfa57b3597"},"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/ed710dbd-213f-471f-bf60-5f96883dc63d/websocket 200 23ms","method":"POST","requestID":"1649239b5f742748d85846bfa57b3597","responseTime":23,"status":200,"url":"/devices/ed710dbd-213f-471f-bf60-5f96883dc63d/websocket"} gateway-1 | {"time_local":"06/Jun/2024:13:16:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/ed710dbd-213f-471f-bf60-5f96883dc63d/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":"1649239b5f742748d85846bfa57b3597"} device-1 | {"level":"info","message":"Sending changed-callback for device 'http://localhost/devices/ed710dbd-213f-471f-bf60-5f96883dc63d' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"device 'http://localhost/devices/ed710dbd-213f-471f-bf60-5f96883dc63d' 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"3010d796ec200b63e128600dfeb8d3d2","responseTime":2,"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/ed710dbd-213f-471f-bf60-5f96883dc63d"},"eventType":"device-changed"}},"level":"info","message":"received a callback"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2N30.qYZ61jyLz8GUhZKlKQUFaQfljRfywWNM-I218AC8xX8","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"22974df74313a21cd2e900db1aa5e28b","responseTime":6,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":516,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:07Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":516,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.33547,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ed710dbd-213f-471f-bf60-5f96883dc63d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/ed710dbd-213f-471f-bf60-5f96883dc63d","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679767,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2N30.qYZ61jyLz8GUhZKlKQUFaQfljRfywWNM-I218AC8xX8"} 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":"22974df74313a21cd2e900db1aa5e28b"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed710dbd-213f-471f-bf60-5f96883dc63d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed710dbd-213f-471f-bf60-5f96883dc63d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:16:05.015556157Z"}]},"request_id":"d28e90c8-b97d-47a2-9617-387938e36cf9","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679767.2447844} 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":"22974df74313a21cd2e900db1aa5e28b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 26ms","method":"POST","requestID":"3010d796ec200b63e128600dfeb8d3d2","responseTime":26,"status":200,"url":"/callbacks/experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"06/Jun/2024:13:16: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.030","http_referrer":"","http_user_agent":"node-fetch","requestID":"3010d796ec200b63e128600dfeb8d3d2"} gateway-1 | {"time_local":"06/Jun/2024:13:16:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ed710dbd-213f-471f-bf60-5f96883dc63d? 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":"22974df74313a21cd2e900db1aa5e28b"} device-1 | {"level":"info","message":"GET /devices/ed710dbd-213f-471f-bf60-5f96883dc63d? 200 20ms","method":"GET","requestID":"22974df74313a21cd2e900db1aa5e28b","responseTime":20,"status":200,"url":"/devices/ed710dbd-213f-471f-bf60-5f96883dc63d?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2N30.qYZ61jyLz8GUhZKlKQUFaQfljRfywWNM-I218AC8xX8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f3a6a74915b4c95dcb812b80fe81515a","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":517,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:07Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":517,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.284396,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f09448a8-0148-4674-8df6-90856593dee2","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/f09448a8-0148-4674-8df6-90856593dee2","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679767,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2N30.qYZ61jyLz8GUhZKlKQUFaQfljRfywWNM-I218AC8xX8"} 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":"f3a6a74915b4c95dcb812b80fe81515a"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09448a8-0148-4674-8df6-90856593dee2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09448a8-0148-4674-8df6-90856593dee2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:16:02.849405987Z"}]},"request_id":"506bec66-8322-4db1-9432-49cc6b8f82ce","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679767.2708027} 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":"f3a6a74915b4c95dcb812b80fe81515a"},"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/f09448a8-0148-4674-8df6-90856593dee2? 200 17ms","method":"GET","requestID":"f3a6a74915b4c95dcb812b80fe81515a","responseTime":17,"status":200,"url":"/devices/f09448a8-0148-4674-8df6-90856593dee2?"} gateway-1 | {"time_local":"06/Jun/2024:13:16:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f09448a8-0148-4674-8df6-90856593dee2? 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":"f3a6a74915b4c95dcb812b80fe81515a"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":518,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:10Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":518,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.256019,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ed710dbd-213f-471f-bf60-5f96883dc63d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/ed710dbd-213f-471f-bf60-5f96883dc63d","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679764,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2NH0.HxbCMF6bq4TRURvP6ibPTLzGEMXSQtFk4GK7KWizv0g"} 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":"f0e073e0-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:44510","level":"info","msg":"Received request.","req_id":519,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:10Z"} authorization-1 | {"client_addr":"127.0.0.1:44510","level":"info","msg":"Sent response.","req_id":519,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.557366,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f09448a8-0148-4674-8df6-90856593dee2","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/f09448a8-0148-4674-8df6-90856593dee2","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679764,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2NH0.HxbCMF6bq4TRURvP6ibPTLzGEMXSQtFk4GK7KWizv0g"} 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":"f0e0c200-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed710dbd-213f-471f-bf60-5f96883dc63d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed710dbd-213f-471f-bf60-5f96883dc63d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:16:05.015556157Z"}]},"request_id":"df51a9f3-a556-48de-9ae8-a2a2f992e19c","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679770.1581857} 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":"f0e073e0-2406-11ef-9563-e3996e819f8c"},"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:49498","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09448a8-0148-4674-8df6-90856593dee2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff09448a8-0148-4674-8df6-90856593dee2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"},"timestamp":"2024-06-06T13:16:02.849405987Z"}]},"request_id":"5a055adc-2955-4273-8227-07b7cf831f89","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679770.1609893} 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":"f0e0c200-2406-11ef-9563-e3996e819f8c"},"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/ed710dbd-213f-471f-bf60-5f96883dc63d? 200 29ms","method":"GET","requestID":"f0e073e0-2406-11ef-9563-e3996e819f8c","responseTime":29,"status":200,"url":"/devices/ed710dbd-213f-471f-bf60-5f96883dc63d?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f09448a8-0148-4674-8df6-90856593dee2? 200 29ms","method":"GET","requestID":"f0e0c200-2406-11ef-9563-e3996e819f8c","responseTime":29,"status":200,"url":"/devices/f09448a8-0148-4674-8df6-90856593dee2?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":520,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:10Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":520,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":2.019807,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:10Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/ed710dbd-213f-471f-bf60-5f96883dc63d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ed710dbd-213f-471f-bf60-5f96883dc63d","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f0e5a400-2406-11ef-9563-e3996e819f8c"},"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/ed710dbd-213f-471f-bf60-5f96883dc63d/signaling 200 14ms","method":"POST","requestID":"f0e5a400-2406-11ef-9563-e3996e819f8c","responseTime":14,"status":200,"url":"/devices/ed710dbd-213f-471f-bf60-5f96883dc63d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":521,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:10Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":521,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.20638,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:10Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/f09448a8-0148-4674-8df6-90856593dee2","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f09448a8-0148-4674-8df6-90856593dee2","object_type":"device","rebac_allow":false,"scope_allow":false,"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f0e86320-2406-11ef-9563-e3996e819f8c"},"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/f09448a8-0148-4674-8df6-90856593dee2/signaling 200 11ms","method":"POST","requestID":"f0e86320-2406-11ef-9563-e3996e819f8c","responseTime":11,"status":200,"url":"/devices/f09448a8-0148-4674-8df6-90856593dee2/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f080208-9a9d-4c0d-a988-08254091ad58"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f080208-9a9d-4c0d-a988-08254091ad58"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"227b1787-4800-4e1f-8551-b567ede8da06"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"ee2921f5-eee6-4307-9594-6e0b19853942"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"61ee0483-2667-4685-886f-ce0bcf5c27e5"}]},"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/f09448a8-0148-4674-8df6-90856593dee2"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/ed710dbd-213f-471f-bf60-5f96883dc63d"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":522,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:10Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":522,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.239787,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:10Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679764,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc2NH0.HxbCMF6bq4TRURvP6ibPTLzGEMXSQtFk4GK7KWizv0g"} 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":"f0eaad10-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96'. 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]}},"raw_response":{},"request_id":"bce48837-f6a9-446e-8c26-8cb61e8bfd3e","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679770.2271209} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"db412369-fa60-4637-b008-c69a78d55e20","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679770.2273695} 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":"f0eaad10-2406-11ef-9563-e3996e819f8c"},"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/089d55ec-5dcd-4395-a5a9-9595a85093df'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/089d55ec-5dcd-4395-a5a9-9595a85093df'"} 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 35ms","method":"POST","requestID":"f0eaad10-2406-11ef-9563-e3996e819f8c","responseTime":35,"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/5f080208-9a9d-4c0d-a988-08254091ad58"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/089d55ec-5dcd-4395-a5a9-9595a85093df' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"089d55ec-5dcd-4395-a5a9-9595a85093df","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"6040f4a81da968b40f42047e3f4d6a4f","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/f09448a8-0148-4674-8df6-90856593dee2"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/ed710dbd-213f-471f-bf60-5f96883dc63d"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/089d55ec-5dcd-4395-a5a9-9595a85093df"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"6040f4a81da968b40f42047e3f4d6a4f","responseTime":8,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:16:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.011","http_referrer":"","http_user_agent":"node-fetch","requestID":"6040f4a81da968b40f42047e3f4d6a4f"} device-1 | {"data":{"peerconnection":"089d55ec-5dcd-4395-a5a9-9595a85093df","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"089d55ec-5dcd-4395-a5a9-9595a85093df","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/089d55ec-5dcd-4395-a5a9-9595a85093df' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"089d55ec-5dcd-4395-a5a9-9595a85093df","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"3f692f3e5546d24c53a11375c501d41e","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/f09448a8-0148-4674-8df6-90856593dee2"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/ed710dbd-213f-471f-bf60-5f96883dc63d"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/089d55ec-5dcd-4395-a5a9-9595a85093df"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":523,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:10Z"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","contextual_tuples":null,"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F089d55ec-5dcd-4395-a5a9-9595a85093df","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"58bef1b3-6584-4d9f-bae5-7a81a3b1cfd7","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679770.5079653} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":523,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.945658,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/089d55ec-5dcd-4395-a5a9-9595a85093df","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/089d55ec-5dcd-4395-a5a9-9595a85093df","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":"f1176260-2406-11ef-9563-e3996e819f8c"},"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/089d55ec-5dcd-4395-a5a9-9595a85093df 200 10ms","method":"GET","requestID":"f1176260-2406-11ef-9563-e3996e819f8c","responseTime":10,"status":200,"url":"/peerconnections/089d55ec-5dcd-4395-a5a9-9595a85093df"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 43ms","method":"POST","requestID":"3f692f3e5546d24c53a11375c501d41e","responseTime":43,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:16: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.048","http_referrer":"","http_user_agent":"node-fetch","requestID":"3f692f3e5546d24c53a11375c501d41e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc3MH0.yzQYX5eBKZGhinVZyRKCUIcpDcnxNWMShVdC0IjMzA0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"7052678fdc256e93e298829e60c9a8d8","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/5f080208-9a9d-4c0d-a988-08254091ad58"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":524,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:10Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":524,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.084713,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/5f080208-9a9d-4c0d-a988-08254091ad58","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/5f080208-9a9d-4c0d-a988-08254091ad58","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679770,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc3MH0.yzQYX5eBKZGhinVZyRKCUIcpDcnxNWMShVdC0IjMzA0"} 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":"7052678fdc256e93e298829e60c9a8d8"},"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/5f080208-9a9d-4c0d-a988-08254091ad58"} gateway-1 | {"time_local":"06/Jun/2024:13:16:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/5f080208-9a9d-4c0d-a988-08254091ad58 HTTP/1.1","status": "200","body_bytes_sent":"1180","request_time":"0.024","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7052678fdc256e93e298829e60c9a8d8"} experiment-1 | {"level":"info","message":"GET /experiments/5f080208-9a9d-4c0d-a988-08254091ad58 200 16ms","method":"GET","requestID":"7052678fdc256e93e298829e60c9a8d8","responseTime":16,"status":200,"url":"/experiments/5f080208-9a9d-4c0d-a988-08254091ad58"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc3MH0.yzQYX5eBKZGhinVZyRKCUIcpDcnxNWMShVdC0IjMzA0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"1c64e37f7200bff4a0d50f9419fe8771","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/5f080208-9a9d-4c0d-a988-08254091ad58"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":525,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:10Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":525,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.314915,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:10Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/5f080208-9a9d-4c0d-a988-08254091ad58","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"experiment:http://localhost/experiments/5f080208-9a9d-4c0d-a988-08254091ad58","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679770,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc3MH0.yzQYX5eBKZGhinVZyRKCUIcpDcnxNWMShVdC0IjMzA0"} 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":"1c64e37f7200bff4a0d50f9419fe8771"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f080208-9a9d-4c0d-a988-08254091ad58"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":526,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:10Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":526,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.310995,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:10Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/089d55ec-5dcd-4395-a5a9-9595a85093df","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"peerconnection:http://localhost/peerconnections/089d55ec-5dcd-4395-a5a9-9595a85093df","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679770,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc3MH0.yzQYX5eBKZGhinVZyRKCUIcpDcnxNWMShVdC0IjMzA0"} 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":"f129d8f0-2406-11ef-9563-e3996e819f8c"},"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/089d55ec-5dcd-4395-a5a9-9595a85093df' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/089d55ec-5dcd-4395-a5a9-9595a85093df' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"089d55ec-5dcd-4395-a5a9-9595a85093df","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F089d55ec-5dcd-4395-a5a9-9595a85093df': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F089d55ec-5dcd-4395-a5a9-9595a85093df","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"97e5da68-01d0-497a-b89a-afb86277cb2a","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679770.647956} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"94f5272c-1212-4c32-9fce-8028789dde6e","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679770.648368} 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"51d6a11d6e081979c2701391a5405de0","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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"f129d8f0-2406-11ef-9563-e3996e819f8c"},"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":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/f09448a8-0148-4674-8df6-90856593dee2"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/ed710dbd-213f-471f-bf60-5f96883dc63d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/089d55ec-5dcd-4395-a5a9-9595a85093df"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e8a8e8be7d403502d304212242f6b54c","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/f09448a8-0148-4674-8df6-90856593dee2"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/ed710dbd-213f-471f-bf60-5f96883dc63d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/089d55ec-5dcd-4395-a5a9-9595a85093df"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"089d55ec-5dcd-4395-a5a9-9595a85093df","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/089d55ec-5dcd-4395-a5a9-9595a85093df 204 51ms","method":"DELETE","requestID":"f129d8f0-2406-11ef-9563-e3996e819f8c","responseTime":51,"status":204,"url":"/peerconnections/089d55ec-5dcd-4395-a5a9-9595a85093df"} device-1 | {"level":"info","message":"deleteDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Received request.","req_id":527,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-06T13:16:10Z"} authorization-1 | {"client_addr":"127.0.0.1:36466","level":"info","msg":"Sent response.","req_id":527,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.117606,"resp_status":200,"subsystem":"opa","time":"2024-06-06T13:16:10Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"device:http://localhost/devices/ed710dbd-213f-471f-bf60-5f96883dc63d","openfga":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","store":"01HZPTZ8A41SDFWH6966KJAB3W"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96","object":"device:http://localhost/devices/ed710dbd-213f-471f-bf60-5f96883dc63d","object_type":"device","payload":{"admin":true,"edgeToken":"hLKmKNnGXSJpHLv38F9BzpETa66VWQ6H6sPdFQ4MyZn2o0PEA-UlbaJUR3Je2Dr9rgY_1RfpDJDnIQkWZwPTZw","iat":1717679770,"sub":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96","subject_alt":"http://localhost/users/87c299df-e0fb-49d1-b806-e6020cab9c96"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzg3YzI5OWRmLWUwZmItNDlkMS1iODA2LWU2MDIwY2FiOWM5NiIsImVkZ2VUb2tlbiI6ImhMS21LTm5HWFNKcEhMdjM4RjlCenBFVGE2NlZXUTZINnNQZEZRNE15Wm4ybzBQRUEtVWxiYUpVUjNKZTJEcjlyZ1lfMVJmcERKRG5JUWtXWndQVFp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNzY3OTc3MH0.yzQYX5eBKZGhinVZyRKCUIcpDcnxNWMShVdC0IjMzA0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","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":"f1321650-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fed710dbd-213f-471f-bf60-5f96883dc63d': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fed710dbd-213f-471f-bf60-5f96883dc63d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"9812c6c4-6cf4-4224-9d54-3be2371f2601","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679770.6956322} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"03e05144-56ba-4a71-bd64-0f99e7a11fd3","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679770.6961899} 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":"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":"f1321650-2406-11ef-9563-e3996e819f8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"deleteDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"DELETE /devices/ed710dbd-213f-471f-bf60-5f96883dc63d 204 34ms","method":"DELETE","requestID":"f1321650-2406-11ef-9563-e3996e819f8c","responseTime":34,"status":204,"url":"/devices/ed710dbd-213f-471f-bf60-5f96883dc63d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5f080208-9a9d-4c0d-a988-08254091ad58"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","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%2F87c299df-e0fb-49d1-b806-e6020cab9c96', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5f080208-9a9d-4c0d-a988-08254091ad58': 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:49498","raw_request":{"authorization_model_id":"01HZPTZ8BFBMSSXH1H668N9QT1","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5f080208-9a9d-4c0d-a988-08254091ad58","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F87c299df-e0fb-49d1-b806-e6020cab9c96"}]},"store_id":"01HZPTZ8A41SDFWH6966KJAB3W","writes":null},"raw_response":{},"request_id":"2e0eac5e-a7a6-4d4f-ac15-881e2018944b","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679770.7508814} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:49498","raw_request":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","store_id":"01HZPTZ8A41SDFWH6966KJAB3W"},"raw_response":{"authorization_model":{"id":"01HZPTZ8BFBMSSXH1H668N9QT1","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"47a4f3aa-b547-4952-89ef-0a19be6df4e5","store_id":"01HZPTZ8A41SDFWH6966KJAB3W","subsystem":"openfga","timestamp":1717679770.7514076} 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":"1c64e37f7200bff4a0d50f9419fe8771"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":22}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/5f080208-9a9d-4c0d-a988-08254091ad58"} gateway-1 | {"time_local":"06/Jun/2024:13:16:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/5f080208-9a9d-4c0d-a988-08254091ad58 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.214","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1c64e37f7200bff4a0d50f9419fe8771"} experiment-1 | {"level":"info","message":"DELETE /experiments/5f080208-9a9d-4c0d-a988-08254091ad58 204 210ms","method":"DELETE","requestID":"1c64e37f7200bff4a0d50f9419fe8771","responseTime":210,"status":204,"url":"/experiments/5f080208-9a9d-4c0d-a988-08254091ad58"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 168ms","method":"POST","requestID":"51d6a11d6e081979c2701391a5405de0","responseTime":168,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:16: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.172","http_referrer":"","http_user_agent":"node-fetch","requestID":"51d6a11d6e081979c2701391a5405de0"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 167ms","method":"POST","requestID":"e8a8e8be7d403502d304212242f6b54c","responseTime":167,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:16: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.172","http_referrer":"","http_user_agent":"node-fetch","requestID":"e8a8e8be7d403502d304212242f6b54c"} gateway-1 | {"time_local":"06/Jun/2024:13:16:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1758","request_time":"5.959","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"35a1aa32f098f5d1c68e338d10c1393c"} gateway-1 | {"time_local":"06/Jun/2024:13:16:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1487","request_time":"3.622","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"55410379008dc7e803642266dd1bc085"} device-1 | {"level":"info","message":"Sending changed-callback for device 'http://localhost/devices/ed710dbd-213f-471f-bf60-5f96883dc63d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/ed710dbd-213f-471f-bf60-5f96883dc63d' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/f09448a8-0148-4674-8df6-90856593dee2' 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"1194ca4b0557ccad09457756e76c587f","responseTime":1,"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/ed710dbd-213f-471f-bf60-5f96883dc63d"},"eventType":"device-changed"}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 410 3ms","method":"POST","requestID":"1194ca4b0557ccad09457756e76c587f","responseTime":3,"status":410,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"06/Jun/2024:13:16:10 +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":"1194ca4b0557ccad09457756e76c587f"} authentication-1 exited with code 0 experiment-1 exited with code 0 device-1 exited with code 0 authorization-1 exited with code 0 gateway-1 exited with code 0